Bonjour,
Encore une fois désolé pour l'intitulé peu prècis.
Voici mon problème : Je voudrais créer une procédure qui boucle sur chaque ID d'une table, et pour cet ID, insérer des valeurs d'une autre table dans une nouvelle table.
Voici, en gros, ce que je voudrais obtenir :
Cependant, je ne connais que cette syntaxe pour les boucles :C1 CURSOR FOR SELECT ID FROM Table1;
Pour chaque élément de C1
{
C2 CURSOR FOR SELECT champ FROM Table2;
Pour chaque élément de C2
{
INSERT INTO Table3 VALUES (ID, champ);
}
}
Je ne peux pas déclarer une deuxième fois : "DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;". Je ne pourrais donc pas recréer une boucle à l'intérieur de la première ...DECLARE x INT;
DECLARE done INT DEFAULT 0;
DECLARE C1 CURSOR FOR SELECT ID FROM Table1;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN C1;
REPEAT
FETCH C1 INTO x;
...
UNTIL done END REPEAT;
Comment pourrais-je procéder ? (ah le PL/SQL ... c'est bien plus simple =P)
Merci du temps passé à essayer de m'aider. Si je n'ai pas été suffisamment clair dans mon explication, n'hésitez pas à me poser des questions.
Cordialement.
Partager