2012-03-05 10 views
0
CREATE OR REPLACE PACKAGE abc 
IS 
TYPE abc_cur IS REF CURSOR; 

FUNCTION TEST 
    RETURN abc_cur; 
END; 
/ 

CREATE OR REPLACE PACKAGE BODY abc 
IS 
FUNCTION TEST 
RETURN abc_cur 
IS 
v_select VARCHAR2(2000); 
BEGIN 
v_select     := 'Select a1,a2 from pqr'; 
OPEN abc_cur FOR v_select; 
RETURN abc_cur; 
END TEST; 
END abc; 

これは、私が作成したダミーパッケージです。関数test selectでは、データ列の平均値が変化します。今私の問題は、他のプロシージャや関数からこの関数を呼び出すと、refカーソルを取得し、どの列が動的に戻るかわからない場合、そのカーソルからデータをフェッチできますか?refカーソルを動的に返す関数から行を取得する

答えて

1

a1とa2が動的な場合は、実行時に変更します.refcursorではなくdbms_sqlを使用することを検討できます。 Hereは、実行時まで列の数と型がわからない場合に、どのように動的に行をフェッチするかの例です。あなたはあなたの要求に応じてそれを変更することができます。

関連する問題