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

Oracle Discussion :

[ORACLE 9i] Trigger - Récupérer une information de l'enreg.


Sujet :

Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Points : 75
    Points
    75
    Par défaut [ORACLE 9i] Trigger - Récupérer une information de l'enreg.
    Bonjour,

    J'ai un petit soucis lors de la création d'un trigger Oracle.

    Pour tout enregistrement insérée ou modifiée d'une table, je cherche a mettre une valeur a 0 si une deuxieme valeur = 'TOTO'.

    Pour le moment, j'ai fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    create or replace trigger MON_TRG
    before insert or update on MA_TBL
    for each row
    begin
    	 if :new.function = 'TOTO' then
    	 	:new.valeur := 0;
    	 end if;
    end;
    Mais il ne marche pas comme je veux parce que le système qui rempli la base de donnée enregistre d'abord la fonction. Et met à jour ensuite que la valeur (qui n'est pas forcemment = à 0).

    Le soucis est que lors de cette mise a jour de valeur, :new.function n'est pas défini car non mis à jour.
    Je ne peux donc meme pas tester la valeur de ce champ.

    Est il possible d'effectuer une requete sur l'enregistrement concerné pour que je puisse récupérer le contenu du champ function et ainsi tester sa valeur et mettre :new.valeur = 0 ?

    Sinon, voyez vous une autre solution ?

    Merci beaucoup
    Worldofdada

  2. #2
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut Re: [ORACLE 9i] Trigger - Récupérer une information de l'enr
    Citation Envoyé par Worldofdada
    Mais il ne marche pas comme je veux parce que le système qui rempli la base de donnée enregistre d'abord la fonction. Et met à jour ensuite que la valeur (qui n'est pas forcemment = à 0).

    Le soucis est que lors de cette mise a jour de valeur, :new.function n'est pas défini car non mis à jour.
    Non ce n'est pas vrai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    SQL> create or replace trigger trg_test_dvp
      2  before insert or update on test_dvp
      3  for each row
      4  begin
      5    if :new.b = 'TOTO' then
      6       :new.c := 0;
      7    end if;
      8* end;
    SQL> /
     
    Trigger created.
     
    SQL> update test_dvp set b = 'TOTO' where a = 2;
     
    1 row updated.
     
    SQL> select * from test_dvp;
     
            A B                                      C
    --------- ------------------------------ ---------
            1 a                                      2
            2 TOTO                                   0
            3 c                                      2
     
    3 rows selected.
     
    SQL> update test_dvp set c=1;
     
    3 rows updated.
     
    SQL> select * from test_dvp;
     
            A B                                      C
    --------- ------------------------------ ---------
            1 a                                      1
            2 TOTO                                   0
            3 c                                      1
     
    3 rows selected.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Points : 75
    Points
    75
    Par défaut
    Effectivement, mon problème est ailleurs ... je vais essayer de comprendre un peu mieux le fonctionnement de l'appli.

    Merci

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

Discussions similaires

  1. [PHP 4] Récupérer une information avec un parser
    Par mashable dans le forum Langage
    Réponses: 1
    Dernier message: 11/04/2010, 10h26
  2. récupérer une information dans un fichier
    Par guigz57 dans le forum C
    Réponses: 3
    Dernier message: 22/03/2010, 19h59
  3. [Prototype] Comment récupérer une information à partir d'un id
    Par hihi30 dans le forum Bibliothèques & Frameworks
    Réponses: 11
    Dernier message: 08/01/2009, 16h44
  4. Récupérer une information d'un fichier hbm
    Par lion13 dans le forum Hibernate
    Réponses: 2
    Dernier message: 05/05/2008, 11h59
  5. Parser une page et d'en récupérer une information
    Par lecyberax dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 30/01/2008, 13h42

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