J'ai deux procédures (A, B) dans Oracle 9i. En individuel, ils fonctionnent tous très bien. Mais je ne peux pas faire une procédure C qui appelle A, qui à son tour appelle B. Je mets un dbms_output.put_line avant que C appelle A, avant que A appelle B et un dans B. D'une certaine manière, seul le premier put_line fonctionne. Quelles sont les raisons possibles pour lesquelles cela ne fonctionne pas? Merci,Pourquoi une procédure ne peut pas appeler une autre instance dans Oracle
CREATE OR REPLACE PROCEDURE C (num in number)
as
begin
for r in (select col1 from Table1)
loop
dbms_output.put_line ('Inside C');
A(r.col1);
end loop;
end;
CREATE OR REPLACE PROCEDURE A (var1 IN varchar2)
AS
v1 varchar2;
cursor c1(c_var in varchar2) is
select col1 from table2 where col2=c_var;
BEGIN
open c1(var1);
loop
fetch c1 into v1;
exit when c1%notfound;
dbms_output.put_line ('Inside A');
B(v1);
end loop;
close c1;
END;
Avez-vous essayé de mettre un dbms_output avant d'ouvrir le curseur dans A pour vous assurer que vous êtes déjà dans la boucle? – climbage