Bonjour.
J'ai un petit soucis lors de la déclaration d'une procédure à l'intérieur d'un bloc declare :
Dans ce sens là, il me met l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 DECLARE PROCEDURE P_Echo (pVar NUMBER) IS BEGIN DBMS_OUTPUT.put_line(pVar||' hello world'); END P_Echo; vVar NUMBER; BEGIN vVar := 1; P_Echo(vVar); END; /
Si je déclare ma variable vVar avant la procédure, ça compile bien, autrement dit, le code suivant fonctionne bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ORA-06550: line 9, column 8: PLS-00103: Encountered the symbol "VVAR" when expecting one of the following: begin function package pragma procedure form
Mais je ne comprends pas vraiment pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 DECLARE vVar NUMBER; PROCEDURE P_Echo (pVar NUMBER) IS BEGIN DBMS_OUTPUT.put_line(pVar||' hello world'); END P_Echo; BEGIN vVar := 1; P_Echo(vVar); END; /
Aussi je me demandai si quelqu'un pouvait m'expliquer pourquoi je ne peux pas déclarer de variables après avoir déclaré de procédures dans un bloc declare.
Je n'avais encore jamais fait ça car je ne trouvais pas très propre de déclarer une procédure dans un bloc DECLARE. Cependant, cela évite de créer un objet dans la BDD. Comme le script que je veux écrire ne doit pas tourner souvent, je me dis qu'il est inutile de créer un objet PROCEDURE pour ça.
Merci d'avance.
Cdt.
Bahan
Partager