bonjour, vioci ma procédure qui se compile bien :

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
 
create or replace procedure param_in_out (codfou IN NUMBER, montant IN OUT NUMBER) is
e_numcom entcom.numcom%type;
l_numcom ligcom.numcom%type;
f_numfou fournis.numfou%type;
l_qtecde ligcom.qtecde%type;
l_priuni ligcom.priuni%type;
begin
select f.numfou, e.numcom, l.numcom
into f_numfou, e_numcom, l_numcom
from fournis f, entcom e, ligcom l
where codfou= f.numfou
and f.numfou= e.numfou
and e.numcom= l.numcom;
montant:=l_qtecde*l_priuni;
end param_in_out
ensuite voici ma requête appelant ma procédure:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
Declare
      montant NUMBER := 236 ;
    Begin
      param_in_out( 120, montant );
     dbms_output.put_line('Fournisseur 120 aura un montant de:'||To_char(montant));
    End ;
ensuite voici l'erreur que me renvoie l'exécution de la requête qui appelle ma procédure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Error report:
ORA-01422: l'extraction exacte ram�ne plus que le nombre de lignes demand�
ORA-06512: � "RAY.PARAM_IN_OUT", ligne 8
ORA-06512: � ligne 4
01422. 00000 -  "exact fetch returns more than requested number of rows"
*Cause:    The number specified in exact fetch is less than the rows returned.
*Action:   Rewrite the query or change number of rows requested
Merci pour votre aide