IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Question sur TRIGGER (Voire Procédure)


Sujet :

PL/SQL Oracle

  1. #1
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut Question sur TRIGGER (Voire Procédure)
    Bonjour,
    Admettons que j'ai une Table de Fournisseurs et une de Commande (passées auprès des fournisseurs).
    Je crée une autre Table HistoriqueCommande qui contiendra les commandes supprimées (de la table commande) une fois la date de livraison atteinte.

    Voilà à présent ma question :

    Je souaiterais qu'à chaque commande supprimée elle soit archivée dans la Table HistoriqueCommande.//ça je l'ai fait avec un TRIGGER sans problème
    Par contre comment gérer automatiquement le fait qu'une date de livraison soit atteinte entraine la suppression de cette commande.
    Car avec les TRIGGER on ne peut agir qu'a la suppression,l'insertion,la mise à jour d'une table. On ne peut pas la "surveiller".
    Le mien que je puisse faire c'est une procédure, mais il faut tout de même la lancer manuellement.

    Donc voilà, si je me suis bien exprimé, savez-vous comment effectuer cette "surveillance" automatiquement?

    Merci.

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    tu ne peux pas, faut faire un job qui se déclenche tous les jours à minuit éventuellement... Sinon, on peut quand même imaginer que quand la livraison est effectivement faite, la date de livraison est mise à jour et alors tu peux déclencher un trigger.

    Par ailleurs, le fonctionnement parait bancal... ça me paraitrait plus logique et performant de mettre une période de validité sur la commande (si date de fin < aujoud'hui alors la commande est terminé) ou un status (OUVERTE, ANNULEE, CLOSE, EN COURS, etc...)

  3. #3
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    Mais pour déclencher le TRIGGER il faut un DELETE,INSERT ou UPDATE.
    C'est bien là le problème, comment "surveiller" la date de livraison pour qu'une fois atteinte on SUPPRIME le tuple et donc déclencher le TRIGGER pour archiver.
    Vous voyez ce que je veux dire?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Avec un job, tu t'affranchis du trigger.

  5. #5
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par juve1897 Voir le message
    Mais pour déclencher le TRIGGER il faut un DELETE,INSERT ou UPDATE.
    C'est bien là le problème, comment "surveiller" la date de livraison pour qu'une fois atteinte on SUPPRIME le tuple et donc déclencher le TRIGGER pour archiver.
    Vous voyez ce que je veux dire?
    je vois très bien et je t'ai dit que tu pouvais faire un job déclenché tous les jours à minuit

    Mais ce que je vois aussi c'est qu'une livraison ça peut être en retard... donc que la date de livraison REELLE doit être renseignée quelque part... ce qui se fera avec un update et tu pourras alors déclencher un trigger.

    M'enfin, j'suis pas dans l'appli et tu fais bien comme tu veux

  6. #6
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    C'est juste, vous aviez raison je me suis trompé.
    Je vois ce que j'ai à faire à présent.
    Désolé de vous avoir dérangé pour rien.

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Par défaut
    Citation Envoyé par juve1897 Voir le message
    C'est juste, vous aviez raison je me suis trompé.
    Je vois ce que j'ai à faire à présent.
    Désolé de vous avoir dérangé pour rien.
    Il peut être utile de sonder du côté du partitionnement de la table ...

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    tu vas un peu vite en besogne... en plus, je rappelle à toute fin utile que l'option est loin d'être gratuite

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Par défaut
    Citation Envoyé par orafrance Voir le message
    tu vas un peu vite en besogne... en plus, je rappelle à toute fin utile que l'option est loin d'être gratuite
    ِCertainement!

    C'est néanmoins une option valable à regarder et ça peut valoir le coût. Nous pouvons énumérer plein de points positifs par rapport à la situation décrite ici. D'un autre côté, certains ont déjà la licence mais ne l'utilisent pas

  10. #10
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    on peut parler de parallélisme et standby database dans ce cas

    Je ne remets pas en cause l'intérêt du partitionnement, juste que dans la discussion présente c'est un peu HS au regard du manque d'info notamment en terme de volume

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Par défaut
    Citation Envoyé par orafrance Voir le message
    on peut parler de parallélisme et standby database dans ce cas

    Je ne remets pas en cause l'intérêt du partitionnement, juste que dans la discussion présente c'est un peu HS au regard du manque d'info notamment en terme de volume
    Désolé mais d'abord j'ai dit que c'est une piste à sonder c'est-à-dire une solution éventuelle
    Et ça n'a rien à voir avec toutes les technologies que tu as énumérées. C'est directement lié à la question originale dans ce sens : Le partitionnement peut rendre le job proposé à juste titre et éventuellement la deuxième table HistoriqueCommande carrément inutiles puisque l'historisation se fera "naturellement". Bien sûr la taille des données est importante pour en décider mais le paratitionnemnet n'est pas hors sujet comme tu l'a dit. Après tout notre rôle dans le forum est également de conseiller sur la technologie à utiliser non

  12. #12
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    J'ai bien compris... mon intervention a surement paru intransigeante alors que ce n'était pas le cas, désolé Fallait lire mon message sur le ton de la légèreté, les smilies en témoignent

    Ceci étant dit, le déplacement entre partition à quand même un coût et dans le cas présent je pense que c'est juste le besoin fonctionnel qui est mal défini. On ne supprime pas (logiquement ou physiquement peu importe) une commande de la même manière qu'on ne supprime pas des factures.

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Par défaut
    Citation Envoyé par orafrance Voir le message
    J'ai bien compris... mon intervention a surement paru intransigeante alors que ce n'était pas le cas, désolé Fallait lire mon message sur le ton de la légèreté, les smilies en témoignent
    Non Orafrance! Je ne l'ai pas pris autrement ...
    Mais je voulais persister puisqu'il me paraît que nous étions devant une situation typique d'utilisation de partitionnement (indépendamment de la suppression des commandes et du trigger). Des opérations basées sur la date et que nous voulons historiser ...

    Citation Envoyé par orafrance Voir le message
    Ceci étant dit, le déplacement entre partition à quand même un coût et dans le cas présent je pense que c'est juste le besoin fonctionnel qui est mal défini. On ne supprime pas (logiquement ou physiquement peu importe) une commande de la même manière qu'on ne supprime pas des factures.
    Je suis entièrement d'accord.

  14. #14
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    on est d'accord alors

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [11g] Question sur réutilisation de procédures stockées/pkg
    Par LEK dans le forum Administration
    Réponses: 4
    Dernier message: 01/11/2013, 03h23
  2. Réponses: 1
    Dernier message: 14/01/2008, 14h36
  3. 4 questions sur les triggers systeme
    Par ZashOne dans le forum Administration
    Réponses: 2
    Dernier message: 02/11/2007, 14h52
  4. Question sur un trigger que je dois realiser
    Par L8O8L dans le forum PL/SQL
    Réponses: 5
    Dernier message: 27/10/2007, 14h08
  5. question general sur triggers (liaison avec VB)
    Par DaxTaz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 15h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo