2011-01-17 4 views
7

매우 긴 문자열을 실행하기 위해 EXECUTE IMMEDIATE 명령을 사용하는 저장 프로 시저가 있습니다. 매우 긴 문자열을 지원하고 데이터를 리퍼런스 커서로 반환하는 방법은 무엇입니까?Oracle EXECUTE 커서로 즉시 실행

+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입니다.