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
したがって、範囲の問題のためにカーソルにアクセスできないことがわかります。しかし、理由がわかりません。