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 :

TRIGGER


Sujet :

Oracle

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Par défaut TRIGGER
    Bonjour,
    J'ai une colonne d'une table qui n'a que 2 valeurs possibles Y ou N.
    je voudrais créer un trigger qui met à null cette colonne si la valeur est autre que Y ou N.
    j'ai créé le trigger suivant mais je ne pense pas que ce soit exact.

    Si quelqu'un peut m'aider?merci
    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
     
     
    CREATE OR REPLACE TRIGGER T_BEFORE_INSERT_TABLE BEFORE INSERT ON TABLE
    FOR EACH ROW
    BEGIN
      IF (:NEW.Colonne<>'Y') 
        THEN
      :new.Colonne := ‘Y’;
      ELSEIF (:new.Colonne<>’N’)
        THEN
      new.Colonne := ‘N’;
      END IF;
     
    EXCEPTION
    When others THEN null;
    END;

  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
    Par défaut
    Le forum n'a pas pour vocation de debugger les codes des uns et des autres .
    En faisant un minimum d'effort (documentation oracle, recherche sur le forum), je pense que vous arriverez à vous en sortir.

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Par défaut
    ok ok ce n'est pas la peine de me répondre sur ce ton...tu ne veux pas m'aider tant mieux!

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    ben non c'est pas exact :
    Si Colonne Différent de Y, tu initialises à Y
    Sinon si Colonne Différent de N, tu initialises à N

    => Si tu arrives dans le trigger avec Y, tu passes dans la deuxième partie et tu mets N
    => Si tu arrives avec une valeur différente de Y et NOT NULL, tu mets Y
    => Cas du NULL non géré.

    Ton test c'est si c'est ni Y, ni N, faut mettre NULL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IF :new.colonne <> 'Y' OR :new.colonne <> 'N'
    THEN
     :new.colonne := NULL;
    END IF;

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Par défaut
    Ah oui en effet, je me suis un peu emm^lée les pinceaux...
    En tout cas je te remercie pour ton aide.

  6. #6
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Et ce que voulait dire PlaineR c'est que c'est un petit problème de débugage de code que tu peux logiquement débuguer toute seule.
    Le forum n'est pas fait pour ça, mais parfois des bonnes âmes se dévouent.

    Bonne Année

  7. #7
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Par défaut
    Ok OK...je voulais juste qu'on m'aide à comprendre pas forcément qu'on me donne la solution.
    J'ai du mal avec les triggers, c'est tout.

  8. #8
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Pas de soucis.
    un petit clic sur RESOLU et c'est fini.

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

Discussions similaires

  1. [power designer et Sybase] trigger
    Par mr_qno dans le forum Sybase
    Réponses: 4
    Dernier message: 12/07/2006, 18h32
  2. [Interbase6] Trigger : Post_event
    Par Andry dans le forum InterBase
    Réponses: 2
    Dernier message: 13/05/2003, 09h27
  3. Trigger ??
    Par XDeus dans le forum Développement
    Réponses: 6
    Dernier message: 31/03/2003, 09h44
  4. [PostgreSQL] Refus de STATEMENT dans un trigger
    Par alex2205 dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/03/2003, 12h51
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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