2016-05-06 4 views
0

動的SQLクエリsys_refcursorを返す関数があり、このカーソルによって列が動的に返されます。関数を実行した後にそのカーソルのSQLを照会したいPL/SQLでのsys_refcursorの結果セットの取得

Select tryit('MyTable_Name',' condition = conditionParameter and condition2=Parameter2') retCursor 
from dual 

カーソルをPL/SQL SQL Windwの1列と1行として戻します。 3つの点をクリックすると、結果セットが返されます。どのようにドットをクリックせずに結果セットを得ることができますか?

関数をxmltypeにキャストし、その列を渡してxmltableとしてキャストすると、結果セットが表示されますが、渡されたパラメータに従って動的に作成する必要があります。

Select * from xmltable('/ROWSET/ROW' 
PASSING xmltype(tryit('MyTable_Name','condition = conditionParameter and condition2=Parameter2')) 
columns 
Col1 PATH 'Col1', 
Col2 PATH 'Col2', 
Col3 PATH 'Col3' , 
Col4 PATH 'Col4') 

注意:Oracle SQL Developerで11グラム、PL/SQL Developerの8

+0

参照カーソルは、クライアントアプリケーションに渡されるポインタです。アプリケーションは結果セットを処理します。 PL/SQL Developerは開発者のツールです(その名前にはヒントがあります)。したがって、参照カーソルをフェッチして表示するには、手動で操作する必要があります。 – APC

+0

[カスタムパイプライン機能](http://stackoverflow.com/questions/14155844/return-resultset-from-function) –

答えて

0

は(と私はPL/SQL Developerの類似した何かがあると仮定)、あなたが機能をラップするSQLクエリを必要としません;カーソルを出力するPL/SQLスクリプトを実行することができます。

関連する問題