2013-04-24 4 views
0

안녕하십니까, 다음의 문장은 약간의 오류를 던집니다. 저장 프로 시저 내에서. 그것은 합법적입니까?PL/SQL 즉시 실행

V_LONG_STR := 'Text1'; 
EXECUTE IMMEDIATE 'V_LONG_STR := NULL'; 

내가 오류가 ORA-00900입니다 : 유효하지 않은 SQL 문 내 방식으로 작동하기 위해 노력하고있어

최대

V_LONG_STR := 'REPLACE (''TEST1'',''TEST'', ''TEXT'')'; 
EXECUTE IMMEDIATE V_LONG_STR; 

및 edventually

V_LONG_STR := 'REPLACE (''V_LONG_STR := ''TEST1'',''TEST'', ''TEXT'')'; 
EXECUTE IMMEDIATE V_LONG_STR; 

하지만, 첫 번째 사항 먼저

답변

3
V_LONG_STR := ' 
    declare 
    a varchar2(100); 
    begin 
    a := REPLACE (''TEST1'',''TEST'', ''TEXT''); 
    end; 
'; 
EXECUTE IMMEDIATE V_LONG_STR; 
2

또는 (임베디드 따옴표 덜 번거 로움) :

V_LONG_STR := q'[ 
    declare 
    a varchar2(100); 
    begin 
    a := REPLACE ('TEST1','TEST','TEXT'); 
    end; 
]'; 
EXECUTE IMMEDIATE V_LONG_STR;