首頁 > 資料庫 > mysql教程 > 如何解決Oracle 11g INSERT SELECT語句中的「ORA-00936:缺少表達式」?

如何解決Oracle 11g INSERT SELECT語句中的「ORA-00936:缺少表達式」?

DDD
發布: 2024-12-29 19:24:16
原創
379 人瀏覽過

How to Resolve

解決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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板