Rechercher : dans
Par :

PL/SQL : équivalent au continue ?!?

Dernière réponse le 7 avr 2009 à 08:59:06 batmat, le 28 avr 2003 à 14:05:13 
 Signaler ce message aux modérateurs

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 ?

Meilleures réponses pour « PL/SQL : équivalent au continue ?!? » dans :
PL/SQL - Introduction au langage PL/SQL Voir Introduction au langage PL/SQL Le langage PL/SQL est un langage L4G (entendez par ce terme un langage de quatrième génération), fournissant une interface procédurale au SGBD Oracle. Le langage PL/SQL intègre parfaitement le langage SQL en lui...
Gestion des paramètres SQL VoirSQL présente un certain nombre de paramètres au niveau d'Oracle qu'il est possible de visualiser à travers la commande : SHOW ALL Pour modifier la valeur d'un paramètre il suffit d'utiliser la commande : SET NOM_PARAM VALEUR
SQL - Commande SELECT VoirLe langage de manipulation de données Le SQL est à la fois un langage de manipulation de données et un langage de définition de données. Toutefois, la définition de données est l'oeuvre de l'administrateur de la base de données, c'est pourquoi la...

1

Waheb, le 28 avr 2003 à 15:32:12

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é

Répondre à Waheb

2

batmat, le 28 avr 2003 à 15:49:06

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 ?

Répondre à batmat

3

Waheb, le 28 avr 2003 à 16:09:02

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!!!

Répondre à Waheb

4

batmat, le 29 avr 2003 à 09:58:19

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 ?

Répondre à batmat

5

Switch, le 27 nov 2006 à 13:34:01

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;

Répondre à Switch

6

Titi, le 25 avr 2008 à 10:56:16

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

Répondre à Titi

7

montrealinfo, le 8 mai 2008 à 21:50:40

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

Répondre à montrealinfo

8

ranjok, le 6 avr 2009 à 15:17:58

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-procedu­raux-stockes/5275.htm

Répondre à ranjok

9

 ranjok, le 7 avr 2009 à 08:59:06

Je retire ce que j'ai dit
Utilisez GOTO <<label>> pour l'équivalent de CONTINUE de SQL Server et C++

Répondre à ranjok