繁体   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