Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#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;
$$
Julien.
https://rjuju.github.io/
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