在Oracle 11G 中,INSERT SELECT 語句允許使用子查詢將資料從一個表格高效傳輸到另一個表格。但是,如果語法不正確,使用者可能會遇到意外錯誤。
使用者查詢:
使用者嘗試使用下列指令將子查詢的結果插入新表中下列語句:
insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);
但是,使用者遇到了以下情況錯誤:
SQL Error: ORA-00936: missing expression
解決方案:
提供的語法不正確。 Oracle 中的 INSERT SELECT 語句不需要 VALUES 關鍵字,而該關鍵字在其他 SQL 方言中常用。正確的語法應該是:
insert into table1 (col1, col2) select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2
換句話說,只需從語句開頭刪除 VALUES 關鍵字即可。這將使Oracle能夠正確執行INSERT SELECT查詢,將子查詢的結果插入table1。
以上是如何在Oracle 11g中正確使用INSERT SELECT以避免ORA-00936?的詳細內容。更多資訊請關注PHP中文網其他相關文章!