2013-07-31 144 views
1

我有一個SQL查詢,程序等數據庫字符串連接的Oracle PLSQL腳本

現在我有以下SQL語句與連接運算符。

'INSERT INTO TEST_TABLE(ID, NAME)' || 'SELECT ID, NAME FROM ' || ' MY_TABLE' 

我想,當我得到SQL回來還給

INSERT INTO TEST_TABLE(ID, NAME) SELECT ID, NAME FROM MY_TABLE 

這個SQL是隻是舉例,但基本上我想刪除串連並返回簡單的SQL。

感謝

+0

只是提防SQL注入漏洞! –

回答

3

如果我有問題就在您尋找類似的eval讓Oracle評估與拼接標記的字符串。

嘗試這樣的事情

declare 
    concatenetaed_sql varchar2(32000); 
    result_Sql varchar2(32000); 
begin 
    concatenetaed_sql := '''INSERT INTO TEST_TABLE(ID, NAME)'' || ''SELECT ID, NAME FROM '' || '' MY_TABLE'''; 
    execute immediate 'select ' || concatenetaed_sql || ' from dual' 
    into result_sql; 
    dbms_output.put_line(result_sql); 
end; 

而結果

INSERT INTO TEST_TABLE(ID, NAME)SELECT ID, NAME FROM MY_TABLE 

PL/SQL procedure successfully completed. 
+0

謝謝它爲我工作。 – user2521079