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 :

Trigger et PL/SQL


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Trigger et PL/SQL
    Bonjour,

    J'ai le code suivant dans un trigger (apres insertion) :
    (J'ai enlevé les parties non importantes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    declare
    begin
    IF INSERTING THEN
      PRENOM = 'test';
    END IF;
     
    IF UPDATING THEN
       NULL;
    END IF;
    end;
    Le trigger reste en état invalide. Pourquoi ?
    Je voudrais pourvoir modifier le champs PRENOM de l'insertion en cours si le nom est égal à 'TEST' (par exemple).

    Merci de vote aide.
    Si vous avez des liens vers des tutoriaux PL/SQL ça m'intéresse.

  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
    := pour affecter une valeur.

    la prochaine fois, merci de penser au balise code et fournir l'erreur lors de la compilation.

  3. #3
    Membre Expert
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Par défaut
    Tu ne pourras pas modifier un champ de table dans un trigger AFTER INSERT, il faut faire un trigger BEFORE INSERT ... FOR EACH ROWS.

    La syntaxe sera d'ailleurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    IF INSERTING THEN
      :NEW.PRENOM := 'test';
    END IF;
    j'ai éliminer le bloc "IF UPDATING" pour 2 raisons
    - dire que si un certait test est vérifié, "on fait rien sinon on fait rien" je vois pas l'interret...
    - tester le UPDATING sur un trigger d'insertion ça sert à rien ce ne sera jamais vérifié!


Discussions similaires

  1. [SQL SERVER 2005] Trigger Oracle vers SQL server
    Par AllyKo dans le forum Développement
    Réponses: 0
    Dernier message: 02/04/2008, 16h06
  2. Syntaxe Trigger Mysql / Transact SQL de SQL Server
    Par Flashball dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 13/03/2008, 15h23
  3. Trigger et PL/SQL Oracle 10
    Par cybernoid dans le forum PL/SQL
    Réponses: 6
    Dernier message: 28/10/2007, 11h39
  4. listage de triggers/sequences avec sql plus
    Par stross dans le forum Oracle
    Réponses: 52
    Dernier message: 20/04/2004, 15h41
  5. Désactiver un trigger sous MS Sql Server
    Par WOLO Laurent dans le forum Développement
    Réponses: 6
    Dernier message: 03/07/2003, 12h51

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