Bonjour,

Alors voilà après avoir créer ma procédure stockée (sans erreur bien sur)
une fois que j'y fais appel avec isql*plus je rencontre le message d'erreur suivant :

SP2-0552: Bind variable "RETOUR" not declared.


Voici l'appel de la procédure qui génère cette fonction

declare retour number
EXECUTE emprunt(&etudiant,&nb,'&emprunts',:retour);
print retour


j'ai beau avoir essayé avec des ; à la fin des instructions cele ne change rien !

Ca doit être un problème très simple mais là je ne vois pas ... :s! donc toutes indications seraient les bienvenues

Je met ci dessous la procédure

set serverout on
create or replace procedure emprunt(idetu number, nbouv number, emprunts varchar, retour OUT number) as
cursor c1 is select idouv,titre from ouvrage where idouv like substr(emprunts,1,5) or idouv like substr(emprunts,6,10) or idouv like substr(emprunts,11,15);
message varchar(80); nb number;
enfant_sans_parent exception;
pragma exception_init(enfant_sans_parent,-2291);
begin
for c1_ligne in c1 loop
insert into emprunter values (idetu,c1_ligne.idouv,sysdate);
dbms_output.put_line('L''Etudiant '||idetu||' vient d''emprunter '||c1_ligne.titre);
end loop;
retour:=0;
commit;
exception
when dup_val_on_index then rollback;
dbms_output.put_line(' Ouvrage dejà emprunté !');
retour:=-2;
when enfant_sans_parent then
rollback;
message:=substr(sqlerrm,1,80);
if message like '%FK_EMPRUNTER_IDETU%' then
dbms_output.put_line('Etudiant inexistant !');
end if;
if message like '%FK_EMPRUNTER_IDOUV%' then
dbms_output.put_line('Ouvrage inexistant !');
end if;
retour:=1;
when others then
rollback;
dbms_output.put_line('Autres erreurs'||sqlcode||sqlerrm);
end;
/


Merci pour votre aide !