HEllo,
je voudrais savoir s'il est possible d'avoir des paramètres optionnels dans une procédure stockée ou une fonction.
si oui comment les déclarer?
HEllo,
je voudrais savoir s'il est possible d'avoir des paramètres optionnels dans une procédure stockée ou une fonction.
si oui comment les déclarer?
Oui, et dans ce cas ils doivent avoir une valeur par défaut
Procedure X( p1 in Varchar2, p2 in Pls_integer default 10 )
peut être appelée de 2 façons différentes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 X( 'hello' ) X( 'hello', 20 )
je pensais plutot à des paramëtres qu'on est pas obligés de spécifier quand on appelle la procédure..
mais merci de ta réponse... elle peut m'aider...
j'ajouterais juste que cette valeur par défaut peut aussi être NULL ce qui peut permettre de le rendre plus "transparent"...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 create or replace procedure X (p1 in Varchar2, p2 in Pls_integer default Null ) is Begin DBMS_OUTPUT.PUT_LINE ( 'p1 = '|| p1 ); If p2 is not null Then DBMS_OUTPUT.PUT_LINE ( 'p2 = '|| p2 ); End If ; End ;begin
X('jdshfadhf', 50) ;
End ;
Résultat :
p1 = jdshfadhf
p2 = 50begin
X('jdshfadhf') ;
End ;
Résultat :
p1 = jdshfadhf
non ce n'est pas nécessaire du tout . il te suffit de faire de l'overload
PL/SQL lets you overload subprogram names and type methods. You can use the same name for several different subprograms as long as their formal parameters differ in number, order, or datatype family.
chapter 8
Oracle® Database PL/SQL User's Guide and Reference
10g Release 2 (10.2)
Jusqu'en 9i, cela n'était possible qu'au sein d'un package...Envoyé par Marc Musette
Yorglaa a répondu à ma question... merci beaucoup.
c'est la première fois que je touche oracle.. c'est pas évident... overload sais pas ce que c'est.. je m'interesserais ça quand j'aurais un peu plus de temps...
meric à vous
il est possible aussi des faire :
avec l'appel suivant pour choisir le paramètre passé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Procedure X( p1 in Varchar2 default Null, p2 in Pls_integer default 10 )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 X( p1 => 'hello' ) X( p2 => 20 )
Lol, tu réponds à un fil vieux de 15 ans
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager