[Oracle 10.2][PL/SQL] Pb déclaration Variables et procédures
Bonjour.
J'ai un petit soucis lors de la déclaration d'une procédure à l'intérieur d'un bloc declare :
Code:
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;
/ |
Dans ce sens là, il me met l'erreur suivante :
Code:
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 |
Si je déclare ma variable vVar avant la procédure, ça compile bien, autrement dit, le code suivant fonctionne bien.
Code:
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;
/ |
Mais je ne comprends pas vraiment pourquoi.
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