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 :

méthode pour construire un trigger


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut méthode pour construire un trigger
    Bonjour à tous,

    Malgré mes recherches sur ce site et même d'autres, impossible de trouver une méthode simple pour créer un trigger.

    J'aurais souhaité trouver la synthaxe, les mots clefs et leur signification (que peut-on mettre comme genre d'instruction entre begin et end par exemple, une requête?).

    Je n'arrive pas à trouver un seul tutoriel sur la question, est-ce si difficile de définir comment construire un trigger sur une table oracle? Je n'en ai aucune idée car je n'en ai encore que trés peu utilisé.

    En revanche, je sais qu'ils pourraient résoudre mon problème actuel, je vous l'expose:
    J'ai une table T contenant disons 1000 enregistrements.
    J'ai une deuxieme table H, vide.
    Je voudrais que lorsque je fais un truncate de ma table T, le trigger insère dans la table H, la valeur 1000, et la date du jour.
    La requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Count(*) FROM T;
    me permet d'obtenir 1000, mais comment la placer dans le trigger?

    Ce trigger au final devra être plus complet, car j'aurai en fait les résultats de plusieurs requêtes effectuées sur la table T à insérer dans la table H (des count sur des critères différents de la table T, chaque résultat d'une requête allant dans un champ différent de la table H).

    Vous l'aurez compris, la table H sert à historiser les données de la table T, mais pas les données brutes, les données calculées.

    J'espère avoir été claire, je suis preneuse de toute suggestion ou solution.

    Je vous remercie d'avance,

    ceuce

  2. #2
    Membre confirmé
    Inscrit en
    Août 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 36

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 126
    Par défaut
    merci, je regarde ça tout de suite!

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par ceuce Voir le message
    ...
    Malgré mes recherches sur ce site et même d'autres, impossible de trouver une méthode simple pour créer un trigger.

    J'aurais souhaité trouver la synthaxe, les mots clefs et leur signification (que peut-on mettre comme genre d'instruction entre begin et end par exemple, une requête?).
    ....
    Déclencheurs.
    Et il y toujours la documentation d'Oracle en ligne.

  5. #5
    Membre éprouvé
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Par défaut
    Les triggers non dml (CREATE, ALTER, TRUNCATE...) ont pour cible un schéma ou une db. Pas une table.

    Voir la syntaxe dans la doc.

    http://download.oracle.com/docs/cd/E...te_trigger.htm

  6. #6
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Par défaut
    Bonsoir,

    Ce trigger au final devra être plus complet, car j'aurai en fait les résultats de plusieurs requêtes effectuées sur la table T à insérer dans la table H (des count sur des critères différents de la table T, chaque résultat d'une requête allant dans un champ différent de la table H).
    En complément de ce qui a déjà été indiqué : votre trigger sur la table T ne saura pas aller chercher des informations dans la table T ("des count sur des critères différents de la table T") parce que celle-ci sera mutante et vous obtiendrez un message :
    ORA-04091: table string.string is mutating, trigger/function may not see it
    Cause: A trigger (or a user defined plsql function that is referenced in this statement) attempted to look at (or modify) a table that was in the middle of being modified by the statement which fired it.
    Action: Rewrite the trigger (or function) so it does not read that table.

    Cdlt,
    OD

Discussions similaires

  1. Méthode pour construire un grand nombre de picture box!
    Par NejNej dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/09/2009, 14h30
  2. [SWING][THREAD]Méthodes pour afficher une Frame
    Par pompidouwa dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 05/05/2004, 10h35
  3. [MIB] Questions pour construire une mib
    Par fadoua dans le forum Développement
    Réponses: 4
    Dernier message: 11/03/2004, 10h47
  4. Réponses: 3
    Dernier message: 14/02/2004, 10h10
  5. Fonction/méthode pour obtenir l'IP de la machine
    Par sirex007 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 10/04/2003, 14h36

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