pb de trigger à l'insertion pl-sql [RESOLU] [ORACLE] - SQL/NoSQL - Programmation
Marsh Posté le 16-03-2004 à 10:37:27
J'ai pas compris cette ligne:
SELECT S_ECICountries.NEXTVAL INTO :NEW.ECICountries_Id FROM DUAL;
Peux-tu m'éclairer dessus?
Marsh Posté le 16-03-2004 à 10:41:59
Ca c'est une ligne qui marche bien. Elle conciste à affecter une nouvelle valeur pour l'identifiant ECICountries_Id à partir de la séquence S_ECICountries que j'ai créée plus haut dans le code.
La table DUAL est une table "virtuelle" qui permet de gérer les séquences. Le champ NEXTVAL (en opposition à CURRVAL qui retourne la valeur courante) est la valeur suivante de la séquence. Par défaut ça commence à 1 avec un incrément de 1.
Marsh Posté le 16-03-2004 à 10:42:12
WHEN est utilisé avec EXEPTION, dans ton cas il faut utiliser IF.
Marsh Posté le 16-03-2004 à 10:45:13
De plus, il me semble que tu ne peut pas faire un BEFORE INSERT et un AFTER INSERT dans un meme trigger. Il faut en faire 2.
Marsh Posté le 16-03-2004 à 10:45:35
ludolitaliano a écrit : Ca c'est une ligne qui marche bien. Elle conciste à affecter une nouvelle valeur pour l'identifiant ECICountries_Id à partir de la séquence S_ECICountries que j'ai créée plus haut dans le code. |
Je connaissais DUAL, mais pas cette méthode pour affecter une valeur!
Je vien d'apprendre un truc
Marsh Posté le 16-03-2004 à 11:06:13
|
Marsh Posté le 16-03-2004 à 15:32:51
Merci beaucoup pour vos informations, j'ai appris des choses. Mais ça ne marche toujours pas. J'ai toujours ce "très explicite" message d'erreur.
Marsh Posté le 16-03-2004 à 16:01:51
Tu travail sous SQL+? Essayes de faire un SHOW ERROR aprés le message d'erreur.
Marsh Posté le 16-03-2004 à 16:08:01
Si tu peux nous donner la structure de la table LogTable et ECICountries?
Marsh Posté le 16-03-2004 à 16:46:14
Avec SHOW ERRORS ça me dit :
Citation : Errors for TRIGGER T_ECICOUNTRIES: |
La structure de la table est :
Code :
|
Marsh Posté le 16-03-2004 à 16:50:23
Quel blairô j'avais oublié un ;
J'ai corrigé le code tu peux reessayer
Marsh Posté le 16-03-2004 à 17:20:25
Je suis un blaireau de n'avoir pas vu qu'il manquait un";".
Bon maintenant ça me dit :
Citation : CREATE OR REPLACE TRIGGER T_ECICountries |
Pourtant si j'éxécute :
Code :
|
Ca marche très bien.
Marsh Posté le 17-03-2004 à 08:33:09
J'ai refait des modifs dans le code tu peux reessayes, ca doit venir de " qu'il faut remplacer par '.
Marsh Posté le 17-03-2004 à 08:47:40
Ca marche super !
Bravo Thecoin !
Marsh Posté le 16-03-2004 à 10:06:48
J'essaie de créer un trigger à l'insertion. La partie "Before update" fonctionne bien seule. Le code du trigger exécuté :
Me donne comme message :
Warning: Trigger created with compilation errors.
Je ne vois pas l'erreur. Auriez-vous une idée ?
Merci.
Message édité par ludolitaliano le 17-03-2004 à 08:48:37
---------------
Ludolitaliano