Bonjour,

Je ne comprends pas le comportement d'une de mes procédures.


Par exemple, une procédure qui fonctionne correctement serait un basique HW :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
CREATE or REPLACE PROCEDURE DisBonjour
	(
		Nom IN Varchar
	) IS
 
	BEGIN
		dbms_output.put_line('Bonjour ');
		dbms_output.put_line(Nom);
 
 
	END;
	/
Ici, j'entre ma procédure sur mon SGBD, la procédure se crée et je l'appelle avec EXECUTE sans problème.



Maintenant, le code suivant ne réagit pas de la même façon ; pourriez-vous m'en expliquer la raison ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
 
CREATE or REPLACE PROCEDURE InsererParcelle
	(
		idParc IN Varchar,
		idProp IN NUMBER,
		typeParc IN VARCHAR,
		super IN NUMBER
	) IS
 
	DECLARE
 
	dateCreate DATE;
 
	BEGIN
	dateCreate := GetDate();
		insert into Parcelle values('&idParc',&idProp,'&typeParc','&dateCreate',&super);
 
	END;
	/
En effet, au lieu de compiler dès le début, il va commencer par me faire saisir les valeurs de mes paramètres (comme si j'avais fait des prompts dessus en fait... or, ce n'est pas le cas...).

Du coup, le code de la procédure n'est évalué qu'une fois les paramètres entrés. Je ne comprends absolument pas pourquoi...