Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
841 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°533444
bartleby
Posté le 07-10-2003 à 17:41:37  profilanswer
 

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
mood
Publicité
Posté le 07-10-2003 à 17:41:37  profilanswer
 

n°533469
nraynaud
lol
Posté le 07-10-2003 à 18:21:51  profilanswer
 
n°534182
bartleby
Posté le 08-10-2003 à 11:06:10  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

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

 

Sujets relatifs
[TOMCAT] Déclencher l'appel de la méthod init d'une servlet. [RESOLU]Faire 1 recherche sur 1 frame dans 1 autre frame [Résolu, code déposé]
prob avec firebird [résolu]Resolu [C] Probleme de resultat de calcul
[resolu] fonction choiceHelp ! pige pas... [résolu]
[resolu] syntaxe en couleur[SQL server] Problème de requête [--RESOLVED--]
[PHP / SQL] Petite base de donnée - etude de faisablité[ASP-ORACLE], impossible de me connecter
Plus de sujets relatifs à : ORACLE PL/SQL Déclaration de tigger [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR