8

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

4

1 に答える 1

18

SQL が 32K を超えないと仮定すると (@Tony Andrews が示唆したように)、次のようなものを使用できるはずです。

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

Ref Cursors をopen-for使用する場合、 の代わりに直接使用できますexecute immediate

于 2011-01-18T22:28:09.880 に答える