私が書いていないストアド プロシージャを使用しています。これは長く、多数の列と結合が含まれています。このプロシージャはカーソルを返します。カーソルは、アプリケーション サーバー (ちなみに .NET) が取得して反復処理します。
SQLPlus と PL/SQL を使用してカーソルをインターセプトしようとしていますが、スクリプトの設定方法を理解するのに苦労しています。これが私がこれまでに持っているものです:
DECLARE
cur sys_refcursor;
BEGIN
adv_schema.report_proc('CAL','01-JAN-2011','01-JAN-2012','Y',cur);
OPEN cur FOR --??????
LOOP
FETCH cur INTO column1, column2;
EXIT WHEN cur%NOTFOUND;
DBMS_OUTPUT.Put_Line ('First Name: '||column1||' Last Name: '||column2);
END LOOP;
END;
/
OPEN ステートメントには何を入れますか? これを行う方法について私が見たすべての例は、非常に単純化された例であり、PL/SQLブロックのすぐそこにテーブル「t」が作成され、そのテーブルへのクエリでカーソルが開かれ、ループオーバーされます。複数のテーブルを持つ複雑なクエリに対してプロシージャがカーソルを返す場合はどうでしょうか?