首頁 > 資料庫 > mysql教程 > 如何在Oracle 11g中正確使用INSERT SELECT以避免ORA-00936?

如何在Oracle 11g中正確使用INSERT SELECT以避免ORA-00936?

DDD
發布: 2024-12-23 20:12:10
原創
957 人瀏覽過

How to Correctly Use INSERT SELECT in Oracle 11g to Avoid ORA-00936?

在Oracle 11G 中透過SELECT 查詢插入資料

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

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