ORACLE PL/SQL Déclaration de tigger [RESOLU]

ORACLE PL/SQL Déclaration de tigger [RESOLU] - SQL/NoSQL - Programmation

Marsh Posté le 07-10-2003 à 17:41:37    

Bonjour à tous,
 
Etant chargé d'une migration Mysql => Oracle,
je pensais regler la question des "autoincrementes" avec des couples Sequences/Triggers.
 
Tout marche trés bien quand je crée ma sequence, puis mon trigger, dans SQL+.
 
Le probleme c'est que j'aimerai pouvoir créer toute la base d'un seul coup depuis un seul script( avec un START 'fichier.sql'). Mais lorsque je lance mon script sous SQL+ (ou Toad ou tout autre utilitaire), celui-ci me demande une valeur de variable ?!
 

Code :
  1. DROP SEQUENCE SEQ_TBLPUBLICATIONS;
  2. CREATE SEQUENCE SEQ_TBLPUBLICATIONS INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE CACHE 20 NOORDER;
  3. CREATE OR REPLACE TRIGGER TRI_TBLPUBLICATIONS BEFORE INSERT ON TBLPUBLICATIONS FOR EACH ROW
  4. DECLARE
  5.     N_NEXTVAL NUMBER;
  6. BEGIN
  7.   SELECT SEQ_TBLPUBLICATIONS.NEXTVAL INTO N_NEXTVAL FROM DUAL;
  8.   :NEW.PUBID := N_NEXTVAL;
  9. END;


 
Il s'arrete juste avant de me creer mon trigger et attend une valeur pour une variable! Alors que si je fais un copier/coller du bout créent le trigger ca marche trés bien ....
 
DURA SYNTAXUM
SED SYNTAXUM
 
.. et j'en perds mon latin !!


Message édité par bartleby le 08-10-2003 à 11:07:38
Reply

Marsh Posté le 07-10-2003 à 17:41:37   

Reply

Marsh Posté le 08-10-2003 à 11:06:10    

Merci nraynaud, toutes les pages que j'avais trouvé ne faisait aucunement mention du petit "/" qu'il faut mettre à la fin de la declaration du trigger.
 
Ca marche, et voici la modification (le "/" à la fin) !
 

Code :
  1. DROP SEQUENCE SEQ_TBLPUBLICATIONS;
  2.   CREATE SEQUENCE SEQ_TBLPUBLICATIONS INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE CACHE 20 NOORDER;
  3.  
  4.  
  5.   CREATE OR REPLACE TRIGGER TRI_TBLPUBLICATIONS BEFORE INSERT ON TBLPUBLICATIONS FOR EACH ROW 
  6.   DECLARE
  7.       N_NEXTVAL NUMBER;
  8.   BEGIN
  9.     SELECT SEQ_TBLPUBLICATIONS.NEXTVAL INTO N_NEXTVAL FROM DUAL;
  10.     :NEW.PUBID := N_NEXTVAL;
  11.   END;/


 
;) !


Message édité par bartleby le 08-10-2003 à 11:07:21
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed