|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Débutant
Inscription : avril 2005 Messages : 464 ![]() |
Bonjour,
Dans une fonction PL/SQL, j'ai un paramétre de type number.Et dans le cops de la fonction, je veux modifier le paramétre(un select INTO dans ce paramétre) et il me signe l'erreur suivante : Error: PLS-00403: l'expression 'D_UNITCOST' ne peut être utilisée comme cible INTO d'une instruction SELECT/FETCH[/COLOR] code : create or replace function sg_overcost_keep( pal_projectname varchar2,d_unitcost number) begin select decode(d_unitcost,null,0.0,d_unitcost) into d_unitcost from dual; end; J'ai mis d_unitcost comme out Number mais là au moment de l'appel, il me dit impossible d'appeler une fonction avec un paramétre out. Merci de me donner un coup de main |
|
|
00
|
|
|
#2 | ||
|
Membre actif
![]() |
Salut,
Code :
++ |
||
|
|
00
|
|
|
#3 |
|
Débutant
Inscription : avril 2005 Messages : 464 ![]() |
Oui, j'ai effectivemment mis le code(mettre les paramétres IN, et IN OUT).
Mais dans une autre fonction où j'appelle cette fonction qui contient ces paramétres en IN et IN OUT, il me signale l'erreur : Error: PL/SQL: ORA-06572: Fonction SG_OVERCOST_KEEP sans arguments |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 448 ![]() |
Une Fonction est un code qui renvoie une valeur par un return.
Dans ton cas, c'est une procédure qu'il faut déclarer. |
|
|
00
|
|
|
#5 |
|
Débutant
Inscription : avril 2005 Messages : 464 ![]() |
Oui, bien sur que cette fonction renvoie une valeur par return.je vous ai pas donné tout le code.Le probléme est que dans cette fonction je modifie un des paramétres spécifiés.
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 448 ![]() |
Crées une procédure avec 1 param IN OUT pour ton param modifiable, et 1 param OUT pour ta valeur de return.
|
|
|
00
|
|
|
#7 | |||
|
Membre éclairé
![]() Inscription : avril 2006 Messages : 465 ![]() |
Citation:
Dans ce cas il faut effectivment que des parametres en IN et un RETURN (ce qui est logique, où verait-on le resultat des parametres en OUT). Il faut donc utiliser une variable local Code :
|
|||
|
|
00
|
|
|
#8 |
|
Débutant
Inscription : avril 2005 Messages : 464 ![]() |
Effectivement, j'appelle la fonction dans un Select statement.Et le probléme est que la fonction est obligée de prendre d_unitcost en argument et ce d_unitcost est modifié au sein de cette fonction.
|
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() Inscription : avril 2006 Messages : 465 ![]() |
C'est pas possible ! !
Si tu veux avoir d_unitcost en paramtre il doit etre en IN. A quoi cela sert que ta fonction mette a jour d_unitcost alors que tu peux pas le récupérer ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com