PL/SQL : équivalent au continue ?!?

batmat Messages postés 1871 Statut Membre -  
 Utilisateur anonyme -
Salut tout le monde, je recherche une petite instruction PL/SQL mais j'ai po l'impression que ça existe... Alors j'appelle CCM à la rescousse ;-)

Une boucle du genre :

FOR i in 1..10
LOOP
IF pof(i)=2 THEN
/* là je voudrais passer directement au i suivant sans
aller jusqu'au END LOOP */
END IF;
END LOOP;

Pour les fanas de C dans mon genre, c l'équivalent du continue... mais en PLSQL pof compilo pas d'accord.

Merci d'avance les gens.
@++
--------------------
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?

10 réponses

ranjok Messages postés 337 Statut Membre 35
 
Je retire ce que j'ai dit
Utilisez GOTO <<label>> pour l'équivalent de CONTINUE de SQL Server et C++
2
montrealinfo
 
saluuut
j ai besoin de votre aide,il faut que je dommande a l utilisateur d entrer un nombre N ,et je dois afficher les N premiers employes de la tabe,an stockant le nombre N dans une valeur.
merciii
1
Waheb
 
tu n'as qu'a introduire "exit" dans l'instruction "IF" pour sortir de la boucle loop...

sinon tu peux aussi utiliser d'autres types de boucles...
comme ....
i=0
Sort_de_la_boucle = false
LOOP WHILE (Sort_de_la_boucle) or ( i =10)
i++
IF pof(i)=2 THEN
Sort_de_la_boucle = true;
END IF;
...
END LOOP

essaie et répond moi... si j'ai pas oublié
0
batmat Messages postés 1871 Statut Membre 114
 
Je croyais pourtant avoir posé clairement la question... En me relisant, je dirais même que j'en suis sûr ;-p.

Je ne cherche pas à savoir comment on sort d'une boucle : en effet, je connais l'instruction EXIT.

Si tu as lu toute la question, je cherche l'équivalent du "continue" en C pour le PL/SQL : C'est à dire, dès que cette instruction est exécutée on rattaque la loop avec l'indice suivant sans avoir exécutée aucune instruction après ce "continue" PL/SQL.

Ici tu me fais quitter la boucle : ce n'est pas ce que je cherche.
En gros, je valide un tableau, et y a des conditions qui valident en une fois l'élément en cours => donc je passe direct à l'élement suivant mais SURTOUT pas quitter.

Voilà chui pas sûr de pas avoir été dans cette réponse moins clair que la question d'origine, mais j'espère quand même qu'un fort répondra ;)
@++
-------------------

Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Waheb
 
soit j'ai encore pas pigé, ... soit tu es en train de te noyer dans un ver d'eau...

dans les deux cas un fort répendra!!!
0
batmat Messages postés 1871 Statut Membre 114
 
C'est pas la peine de t'énerver ;-)
Est ce que tu as déjà programmé en C ou en C++ ? Je crois me souvenir que cette instruction est aussi présente en Java.

Quand dans une boucle tu veux passer directement à l'itération suivante, tu écris simplement l'instruction "continue;" .

c'est le contraire du break; (en C) qui lui, sort de la boucle et c'est ce que tu me propose avec le EXIT en PL/SQL ! Or j'ai bien dit que je ne voulais pas m'arrêter.

Soit tu comprends cette question et tu sais répondre, soit tu ne réponds pas et tu ne pourries pas le forum. Quand je ne sais pas répondre, je change de topic moi... Et cherche un peu, tu verras que j'ai déjà répondu à quelques sujets.

Allez, sans rancune et @+

Putain chsens que ça va troller...

-------------------
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
0
Switch
 
Il y a une solution avec le GOTO Ca peut rebuter des puristes, mais cela correspond à un équivalent du continue;

FOR i IN 1..50 LOOP
IF done THEN
GOTO end_loop;
END IF;
...
<<end_loop>>
NULL; -- an executable statement
END LOOP;
0
Titi
 
Bonjour,

J'ai le même problème, je pense que je vais m'orienter plutôt vers une structure du type

FOR i in 1..10
LOOP
IF NOT pof(i)=2 THEN
/* j'effectue réellement ma boucle loop */

END IF;
END LOOP;

Je pense qu'à priori ca doit résoudre le problème.

Amicalement
0
ranjok Messages postés 337 Statut Membre 35
 
Il semble que CONTINUE existe en Oracle!!! Selon cet article il y a EXIT et CONTINUE pour sortir ou recommencer une boucle: http://www.demos.fr/formation-oracle-plsql-et-objets-proceduraux-stockes/5275.htm
0
MikyMike
 
La réponse est ici:
http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28370/controlstructures.htm
0
Utilisateur anonyme
 
Bonjour,

Excellente trouvaille et très intéressant, étant actuellement en pleine programmation
de rapports en PLSQL sous TOAD.

Est-ce que tu connais TOAD ?

Actuellement je fais des recherches pour savoir pourquoi TOAD 9.7 plante
lorsque je débugue mes rapports lors de l'instruction [ PIPE ROW v_Record; ].

Est-ce que tu connais ce problème ?

Cdt

Lupin
0