簡體   English   中英

Oracle 11G中的INSERT SELECT語句

[英]INSERT SELECT statement in Oracle 11G

我正在嘗試在Oracle 11g中運行一個非常簡單的sql語句。

 insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);

非常簡單的查詢。 笛卡爾將舊表1連接到舊表2,將結果值放入表1。

我已經單獨運行了子查詢,它運行良好。

 select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2

當我嘗試運行完整語句時,出現以下錯誤:

 SQL Error: ORA-00936: missing expression
 00936. 00000 -  "missing expression"

我也無法使其在MySql中工作。 我的發言有誤,但我不確定這是什么。

您的查詢應為:

insert into table1 (col1, col2) 
select t1.col1, t2.col2 
from oldtable1 t1, oldtable2 t2

即沒有VALUES部分。

擺脫values關鍵字和parens。 您可以在此處查看示例。

這是基本的INSERT語法:

INSERT INTO "table_name" ("column1", "column2", ...)
VALUES ("value1", "value2", ...);

這是INSERT SELECT語法:

INSERT INTO "table1" ("column1", "column2", ...)
SELECT "column3", "column4", ...
FROM "table2";

使用“選擇”作為源時,您不需要“值”子句。

insert into table1 (col1, col2) 
select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2;

用於將數據插入表中,您可以編寫

insert into tablename values(column_name1,column_name2,column_name3);

但是按照表中的順序在序列中寫入column_name ...

還有另一個選項可以將數據插入表中。

insert into tablename values(&column_name1,&column_name2,&column_name3);

它將打開另一個用於插入數據值的窗口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM