2013-04-24 76 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;