解決Oracle 11G 中INSERT SELECT 語句的“ORA-00936”錯誤
“ORA-00936:缺少表達式錯誤” 11G 中執行INSERT SELECT 語句時可能會出現。讓我們分析一個具體案例來解決這個問題。
問題:
SQL 語句嘗試將子查詢中的資料插入表中:
insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);
子查詢單獨執行時可以正確運行,從兩個表oldtable1 和oldtable2 中檢索行。但是,當作為INSERT語句的資料來源執行時,遇到「ORA-00936:缺少表達式」錯誤。
解:
錯誤源自於INSERT 語句中的語法不正確。使用 SELECT 語句填入目標表時,不需要 VALUES 關鍵字。正確的語法應該是:
insert into table1 (col1, col2) select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2
省略 VALUES 部分,INSERT 語句可以正確執行子查詢並使用所選資料填入 table1。
以上是如何解決Oracle 11g INSERT SELECT語句中的「ORA-00936:缺少表達式」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!