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

SQL Oracle Discussion :

Trigger sous Oracle RDB


Sujet :

SQL Oracle

  1. #1
    Membre habitué Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Points : 174
    Points
    174
    Par défaut Trigger sous Oracle RDB
    Bonjour à tous,

    J'essaie de modifier la valeur NEW.valeur dans un trigger sous Oracle RDB. cependant cela ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    CREATE TRIGGER TRG_TV_BI
    	BEFORE INSERT ON TV
    	REFERENCING NEW AS nw
     
    	WHEN (nw.NU_CL IS NOT NULL) 
    	(
    		nw.NU_VALEUR := GETVALUE(nw.NU_CL);
    	)
    	WHEN (nw.NU_VALEUR LIKE 'CL%' AND nw.NU_CL IS NULL)
    	(
    		SIGNAL '50000'('the CL must be defined.');
    	)
    	FOR EACH ROW;
    J'ai tenté toutes les variantes que je connais (set nw.nu_valeur... ; nw.nu_valeur = ....; nw.nu_valeur := ......)

    Quelqu'un saurait-il comment je pourrais réussir cette opération ou cela est tout simplement impossible.

    L'idée est de définir une valeur qui me permettra d'identifier la table associée à NU_CL. GETVALUE me renvoie un code qui me permet de connaitre de quelle table provient NU_CL. Ce code est obtenu suite à une grosse requete UNION.

    Merci d'avance.

  2. #2
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Lisez un tutoriel sur PL/SQL chapitre triggers.

  3. #3
    Membre habitué Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Points : 174
    Points
    174
    Par défaut
    Merci du conseil, mais cela ne répond pas à ma question.

    Je rappelle que la base de données est RDB.
    La syntaxe sql est différente et c'est pourquoi je rencontre ce problème.

    par exemple, PS/SQL référence OLD par :old.<nom du champ> à tous les évènements (BEFORE INSERT, ...., AFERT DELETE) alors que RDB utilise cette référence uniquement lors d'une opération UPDATE.

    [J'ai poursuivi mes recherches et il n'est pas possible de référencer old et/ou new lors d'une opération de INSERT ou de DELETE]

  4. #4
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    C'est ça votre Oracle RDB ?

  5. #5
    Membre habitué Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par mnitu Voir le message
    C'est ça votre Oracle RDB ?
    Oui, version 7.2 pour open VMS.

  6. #6
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Ok je vous dois des excuses je ne connais pas du tout cette chose.
    Il se peut très bien que ce qu’il est vrai pour une base Oracle « normale » ne fonctionne pas avec cette base. Donc il n’est pas étonnant que vous ne puissiez pas modifier les valeurs des new avec la syntaxe habituelle. Il ne sera pas non plus étonnant si vous puissiez faire des choses qui sont interdit dans une base normale. Essayez donc de refaire un update sur votre table avec la valeur souhaitée.
    Sinon j’ai vue des colonnes automatiques si vous pouvez changer la structure de la table ou créer une nouvelle que vous mettez à jour via le trigger.

Discussions similaires

  1. trigger sous oracle
    Par oOmanOo dans le forum PL/SQL
    Réponses: 1
    Dernier message: 23/05/2011, 09h31
  2. Trigger sous oracle ne fonctionne pas !
    Par ychaabani dans le forum PL/SQL
    Réponses: 4
    Dernier message: 08/02/2010, 10h24
  3. fonction analytiques sous oracle RDB.
    Par pdelorme dans le forum SQL
    Réponses: 3
    Dernier message: 19/03/2008, 11h18
  4. création de trigger sous oracle 9i
    Par bkina dans le forum PL/SQL
    Réponses: 2
    Dernier message: 12/11/2007, 13h58
  5. Trigger sous oracle
    Par arezki76 dans le forum Oracle
    Réponses: 3
    Dernier message: 31/08/2006, 12h49

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