2011-01-17 9 views
7

非常に長い文字列を実行するためにEXECUTE IMMEDIATEコマンドを使用したスト​​アドプロシージャがあります。非常に長い文字列をサポートし、データをrefcursorに戻すにはどうすればよいですか?カーソルへのEXECUTE IMMEDIATE

+4

「非常に長い」期間はどのくらいですか? 32K以上? –

+0

どのデータベースのバージョンですか? – DCookie

答えて

0

11gR2およびDBMS_SQL.to_refcursorを使用します。あなたのSQLは、あなたがこのようなものを使用することができるはずはない長い(@Tonyアンドリュースを示唆した通り)32K以上であると仮定すると

12

:参考カーソルを

declare 
    SQL_Text varchar2(32760) := 'select * from dual'; --your query goes here 
    cur sys_refcursor; 
begin 
    open cur for SQL_Text; 
end; 

作業、open-forを直接使用することができます、代わりにexecute immediate

関連する問題