PL/SQL : Les séquences

PL/SQL : Les séquences - SQL/NoSQL - Programmation

Marsh Posté le 09-06-2004 à 18:05:10    

Voila, j'ai créer mes différentes séquences sur mes tables. Elles vont me servir de compteur (logique). Mon problème est que je ne trouve pas la syntaxe qui me permet de transmettre le chiffre du compteur avec une variable de sortie.
 
Ex :

Code :
  1. create or replace procedure ....
  2. (
  3. ..
  4. )
  5. as
  6. Var1 out int;
  7. begin
  8.   insert into Table
  9.   (
  10.   Table.ID,
  11.   ..,
  12.   )
  13.   values
  14.   (
  15.   Seq_Table.nextval,
  16.   ..,
  17.   );
  18.   /* la je sais pas comment faire ? */
  19.  
  20.   select seq_Table into Var1 from dual; /* ca marche pas */
  21. end ;


 
Si quelqu'un peut m'aider ?
 
Merci d'avance


Message édité par petithomme le 09-06-2004 à 18:09:45
Reply

Marsh Posté le 09-06-2004 à 18:05:10   

Reply

Marsh Posté le 09-06-2004 à 20:48:21    

je vois pas ce que tu veux faire avec le dernier select ... explique.

Reply

Marsh Posté le 10-06-2004 à 09:09:53    

je veux transmettre le numéro du compteur. A chaque insertion dans la table le champ "Table.Id" est incrémenté et je veux transmettre en sortie la valeur de ce champ.

Reply

Marsh Posté le 10-06-2004 à 10:16:49    

ben fais le select de Seq_Table.nextval que tu qtoques dans Var1.
Tu en fais ce que tu veux ensuite, donc en particulier, tu t'en sers dans l'insert.

Reply

Marsh Posté le 10-06-2004 à 10:24:31    

En fait je veux transmettre en sortie le contenu du champ "Table.Id".
Comment faire ?


Message édité par petithomme le 10-06-2004 à 11:18:57
Reply

Marsh Posté le 10-06-2004 à 11:29:25    

Code :
  1. create or replace procedure ....
  2. (
  3. Var1 out int
  4. )
  5. as
  6. begin
  7.   select Seq_Table.nextval into Var1 from dual; /* là ça devrait marcher */
  8.   insert into Table
  9.   (
  10.   Table.ID,
  11.   ..,
  12.   )
  13.   values
  14.   (
  15.   Var1,
  16.   ..,
  17.   );
  18. end ;


 
il faut que ta variable à renvoyer soit dans les paramètres de ta procédure, en OUT.
C'est expliqué ici :
http://sheikyerbouti.developpez.com/pl_sql/?page=Chap4

Reply

Marsh Posté le 10-06-2004 à 12:23:33    

ok merci beaucoup!
Sinon je me demandais à quel moment se fait le renvoie du paramètre en sortie ?
Après l'éxécution complète de la procédure (après le "end" )
ou
après la ligne suivante :
"select Seq_Table.nextval into Var1 from dual;"
 
?

Reply

Marsh Posté le 10-06-2004 à 21:41:40    

ben en fait il me semble que tu appelles la procédure en lui passant le paramètre OUT en entrée. Donc il est modifié par la procédure (rempli quoi).

Reply

Sujets relatifs:

Leave a Replay

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