我需要一个 PL/SQL 的帮助。事实上,我不明白为什么甲骨文不想接受这个代码:
set serveroutput on;
CREATE OR REPLACE PROCEDURE route (gagnant VARCHAR2) IS
CURSOR perdants IS SELECT NPerdant FROM RENCONTRE WHERE NGagnant = gagnant;
BEGIN
FOR perdant IN perdants
LOOP
dbms.output.put_line(gagnant || ' bats ' || perdants.nperdant);
route (perdants.nperdant);
END LOOP;
END;
/
这是 show errors 命令的结果:
LINE/COL ERROR
10/17 PL/SQL: Statement ignored
10/70 PLS-00225: référence de sous-programme ou de curseur 'PERDANTS' e st hors étendue
11/17 PL/SQL: Statement ignored
11/33 PLS-00225: référence de sous-programme ou de curseur 'PERDANTS' e st hors étendue
perdants
所以它告诉我由于范围问题它无法访问光标。但我不明白为什么。