Vous n'êtes pas identifié(e).

#1 07/06/2012 17:37:05

fr2ed
Membre

Je n'arrive pas à utiliser les structures de contrôles

Bonjour,
je voudrais réaliser une requête avec des boucles. J'ai étudié la doc autant que possible mais je ne parviens pas à mettre en application.

Par exemple le sql suivant :

FOR i IN 1..2 LOOP

select champ from matable;

END LOOP;



me donne systématiquement l'erreur :

ERREUR:  erreur de syntaxe sur ou près de « FOR »
LINE 1: FOR i IN 1..2 LOOP
        ^

********** Erreur **********

ERREUR: erreur de syntaxe sur ou près de « FOR »
État SQL :42601
Caractère : 1

-----------------

J'ai essayé en direct avec pgadmin et avec plsql : pareil !

J'ai loupé quoi ? ?

on peut faire des boucles dans pgadmin ?
il faut créer des fonctions ?
pgscript ?

Je suis perdu ! ! Merci de votre aide.

Dernière modification par fr2ed (12/06/2012 12:15:52)

Hors ligne

#2 07/06/2012 17:41:39

gleu
Administrateur

Re : Je n'arrive pas à utiliser les structures de contrôles

Il faut soit créer une procédure stockée, soit utiliser la commande DO.

pgscript est aussi une possibilité.


Guillaume.

Hors ligne

#3 07/06/2012 17:42:34

rjuju
Administrateur

Re : Je n'arrive pas à utiliser les structures de contrôles

Les boucles ne sont pas utilisables en sql pur. Vous pouvez le faire en pl/pgsql ou avec pgscript.


Un exemple avec les fonctions anonymes :

do
$$
begin
for i in 1..2
loop
raise notice 'test %',i;
end loop;
end;
$$

Hors ligne

#4 11/06/2012 13:27:21

fr2ed
Membre

Re : Je n'arrive pas à utiliser les structures de contrôles

Merci pour ces précisions.

Je teste ça dès que je peux...


EDIT: J'ai réussi à faire ma boucle dans une procédure stockée. Merci

Dernière modification par fr2ed (29/08/2012 14:20:57)

Hors ligne

Pied de page des forums