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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [postgresql] quitter un LOOP quand le curseur arrive a sa fin

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[postgresql] quitter un LOOP quand le curseur arrive a sa fin

n°588425
GUG
Posté le 11-12-2003 à 16:01:02  profilanswer
 

Bonjour,
Me reste plus que ca à faire et je trouve pas ;)  
j ai ca :  
 
open curs
LOOP
  fetch curs ....
  ..........
EXIT WHEN   ;
end loop;
...
 
 
Je ne sais pas quoi mettre derriere WHEN,  
j ai essaye sqlcode=100, sqcla.sqlcode=100  et ca marche pas... et d'autre plus farfelus ...
 
merci d avance


Message édité par GUG le 11-12-2003 à 16:01:52
mood
Publicité
Posté le 11-12-2003 à 16:01:02  profilanswer
 

n°588871
GUG
Posté le 12-12-2003 à 08:37:32  profilanswer
 

siouplait ;)

n°588892
dalcap
Posté le 12-12-2003 à 09:53:25  profilanswer
 

salut, je ne sais pas en postgresql, mais avec oracle c'est un truc du genre

Code :
  1. exit when curs%NOTFOUND;

, tu peux toujours essayer...


Message édité par dalcap le 12-12-2003 à 09:53:51
n°588909
GUG
Posté le 12-12-2003 à 10:27:20  profilanswer
 

il me crit dessus ;)
merci qd meme  
 

Code :
  1. data=> SELECT fc_com();
  2. NOTICE:  Error occurred while executing PL/pgSQL function fc_com
  3. NOTICE:  line 20 at exit
  4. ERROR:  Attribute 'notfound' not found
  5. data=>

n°588911
GUG
Posté le 12-12-2003 à 10:28:13  profilanswer
 

Code :
  1. create or replace  FUNCTION fc_com () RETURNS INTEGER AS '
  2. DECLARE
  3. c_com CURSOR for select * from current_com order by idfour;
  4. prod varchar(9);
  5. four varchar(5);
  6. qte int;
  7. cfour varchar(8);
  8. bon int;
  9. BEGIN
  10. open c_com;
  11. fetch c_com into prod,qte,cfour;
  12. LOOP
  13. four := cfour;
  14.         WHILE four = cfour LOOP
  15.                 insert into boncom(idfour) VALUES (cfour);
  16.                 select MAX(idbon) into bon from boncom;
  17.                 insert into comfour(idbon, idprod, qtebon) VALUES (bon, prod, qte);
  18.                 fetch c_com into prod,qte,cfour;
  19.         end loop;
  20. exit when c_com%NOTFOUND;
  21. end loop;
  22. close c_com;
  23. delete from current_com;
  24. RETURN 1;
  25. END;
  26. ' LANGUAGE 'plpgsql';

n°589106
dalcap
Posté le 12-12-2003 à 14:04:04  profilanswer
 

salut,
 
j'ai fait une recherche dans google, je n'ai pas trouvé de résultat concluant dans les premiers que j'ai regardés...
sur le site de postgresql, il n'existe pas de 'notfound', donc ct une mauvaise idée, dsl...


Message édité par dalcap le 12-12-2003 à 14:04:19
n°589109
dalcap
Posté le 12-12-2003 à 14:06:34  profilanswer
 

heu, idée à 2 balles
tu peux peut-être compter le nombre de lignes retournées via une première requète, et ensuite faire le fetch de tes N lignes qui t'intéressent ???
en attendant d'avoir la solution exacte, ça peut peut-être te dépanner....

n°589153
Mara's dad
Yes I can !
Posté le 12-12-2003 à 15:20:23  profilanswer
 

Citation :

FETCH retrieves the next row from the cursor into a target, which may be a row variable, a record variable, or a comma-separated list of simple variables, just like SELECT INTO. As with SELECT INTO, the special variable FOUND may be checked to see whether a row was obtained or not.


 
C'est FOUND q'il faut tester, pas NOTFOUND
 
open curs  
LOOP
 fetch curs ....  
 EXIT WHEN NOT FOUND;  
 ..............
end loop;  
...  


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°589201
dalcap
Posté le 12-12-2003 à 15:47:27  profilanswer
 

Argh !
merci...
j'avais fait une recherche sur NOTFOUND (comme dans oracle), mais pas sur FOUND.... dsl
 
merci Mara's Dad
..
GUG, ça résoud ton problème ????

n°589284
GUG
Posté le 12-12-2003 à 16:49:14  profilanswer
 

dalcap a écrit :

heu, idée à 2 balles
tu peux peut-être compter le nombre de lignes retournées via une première requète, et ensuite faire le fetch de tes N lignes qui t'intéressent ???
en attendant d'avoir la solution exacte, ça peut peut-être te dépanner....


 
c'est ce que j ai fait mais c'est 'grouikkk'
 
 
merci a vous deux, j'essaye ca euh  la semaine prochaine :D

mood
Publicité
Posté le 12-12-2003 à 16:49:14  profilanswer
 

n°589290
dalcap
Posté le 12-12-2003 à 16:56:50  profilanswer
 

[rage on]
QUOI? c'est grouikkk :fou:  
 
dis-le que je programme comme un porc... :kaola:  
...ça m'apprendra à vouloir être utile...  
engagez vous qu'ils disaient...
[rage off]
 
plus sérieusement, ct vraiment une solution pour dépanner, vu que je ne connaissais pas postgres...
 
mais Mara's dad doit avoir raison, donc ça va marcher, sans cote de porc... :lol:


Message édité par dalcap le 12-12-2003 à 16:59:21
n°589294
GUG
Posté le 12-12-2003 à 17:00:21  profilanswer
 

dalcap a écrit :

QUOI? c'est grouikkk
 
dis-le que je programme comme un porc...
...ça m'apprendra à vouloir être utile... engagez vous qu'ils disaient...


 
keep cool :)
d ailleur je trouve que le tour de gaule et obelix et companie sont enormes :D
c'est y pas plus jolie un jolie when not found ;) :D


Message édité par GUG le 12-12-2003 à 17:01:49
n°589298
GUG
Posté le 12-12-2003 à 17:01:25  profilanswer
 

dalcap a écrit :

[rage on]
QUOI? c'est grouikkk :fou:  
 
dis-le que je programme comme un porc... :kaola:  
...ça m'apprendra à vouloir être utile...  
engagez vous qu'ils disaient...
[rage off]
 
plus sérieusement, ct vraiment une solution pour dépanner, vu que je ne connaissais pas postgres...
 
mais Mara's dad doit avoir raison, donc ça va marcher, sans cote de porc... :lol:


 
ouais mais une cote de porc au barbeuk c'est pas mauvais ;)


Message édité par GUG le 12-12-2003 à 17:11:23
n°589301
Mara's dad
Yes I can !
Posté le 12-12-2003 à 17:03:06  profilanswer
 

GUG a écrit :


 
ouais mais une cote de porc au barbac c'est pas mauvais ;)


 :non: barbeuk [:aloy]


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°589313
GUG
Posté le 12-12-2003 à 17:11:39  profilanswer
 

:lol:  :lol:  

n°589314
dalcap
Posté le 12-12-2003 à 17:11:40  profilanswer
 

argh, grillaid sur le edit, 3 fois que je me fais avoir aujourd'hui...z'etes trop rapides... :D

n°589917
GUG
Posté le 13-12-2003 à 13:52:28  profilanswer
 

c'est bon ca marche merci :)


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

  [postgresql] quitter un LOOP quand le curseur arrive a sa fin

 

Sujets relatifs
[postgresql] trigger sur l'heure systeme ? edit : utilisation crontabmutex, j'arrive pas a compiler
[PGSql-newbies] PostgreSql sur windows ?[postgresql/pgsql] IF - THEN - ELSE, syntaxe particulière ?
[postgresql] trigger, j'ai du malTuning Postgresql - Tips
[Postgresql] Transaction : équivalent à @@error en sql server ?[PostgreSQL] phpPgAdmin, probleme de creation de table o_O
problème de création de fonction avec postgresql 7.3.4postgresql : afficher toutes les tables, je ne trouve pas dans la doc
Plus de sujets relatifs à : [postgresql] quitter un LOOP quand le curseur arrive a sa fin


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