2016-11-28 33 views
0

我想插入數據到一個動態派生的表中。 我正在從col1和col2的MASTER_TABLE中選擇數據。根據col1和col2中的值,我將數據插入表SLAVE_col1value_col2value中。SQL插入查詢的值像JUM'A ABDUL FATTAH導致丟失,錯誤

我的SQL查詢樣子:

insert_query_str :='INSERT INTO SLAVE_' 
     || Col1 
     || '_' 
     || Col2 
     || ' VALUES (''' 
     || CUST_NAME 
     || ''',''' 
     || APPLICATION_DATA 
     || ''')'; 
EXECUTE IMMEDIATE insert_query_str; 

然而,像JUM'A ABDUL FATTAH名引起插入查詢字符串看起來像這樣

INSERT INTO SLAVE_XYZ_ABC VALUES ('JUM'A ABDUL FATTAH','APPSPECIFICDATA'); 

,我得到一個缺少逗號錯誤該線。 我知道如果我雙引號的名稱,那麼這個錯誤可以整理出來,但當我嘗試它硬編碼||。我也沒有在查詢中獲得真實姓名。

我正在使用Oracle SQL 11g和Toad。

預先感謝您

+2

使用綁定參數,而不是字符串文字。 – OldProgrammer

回答

2

使用佔位符連同USING條款:

insert_query_str :='INSERT INTO SLAVE_' 
     || Col1 
     || '_' 
     || Col2 
     || ' VALUES (:cust_name, :app_data)'; 
EXECUTE IMMEDIATE insert_query_str USING CUST_NAME, APPLICATION_DATA;