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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  PL/SQL : Les séquences

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PL/SQL : Les séquences

n°758308
petithomme
Posté le 09-06-2004 à 18:05:10  profilanswer
 

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
mood
Publicité
Posté le 09-06-2004 à 18:05:10  profilanswer
 

n°758405
Beegee
Posté le 09-06-2004 à 20:48:21  profilanswer
 

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

n°758749
petithomme
Posté le 10-06-2004 à 09:09:53  profilanswer
 

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.

n°758864
Beegee
Posté le 10-06-2004 à 10:16:49  profilanswer
 

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.

n°758880
petithomme
Posté le 10-06-2004 à 10:24:31  profilanswer
 

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
n°758996
Beegee
Posté le 10-06-2004 à 11:29:25  profilanswer
 

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

n°759084
petithomme
Posté le 10-06-2004 à 12:23:33  profilanswer
 

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;"
 
?

n°759795
Beegee
Posté le 10-06-2004 à 21:41:40  profilanswer
 

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).


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

  PL/SQL : Les séquences

 

Sujets relatifs
retour d'une requête SQLrequete SQL
[ODBC + VC++] Exécution d'une requête SQL d'insertionCommandes pour executer une procédure sql à partir de php
[vb6] Implémenter une requete SqlSQL via PHP
Installer une base de donnée sql existante !Pb sous PL/SQL : correspondance de @@IDENTITY ?
Pb sous PL/SQL : correspondance de Transaction ?Pb sous PL/SQL : Affectation d'une valeur à une variable
Plus de sujets relatifs à : PL/SQL : Les séquences


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