Bri*_*ian 33 sql oracle oracle11g
我正在尝试在Oracle 11g中运行一个非常简单的sql语句.
insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);
Run Code Online (Sandbox Code Playgroud)
非常简单的查询.笛卡尔将旧表1连接到旧表2,将结果值放入表1中.
我自己运行子查询,它完美地运行.
select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2
Run Code Online (Sandbox Code Playgroud)
当我尝试运行完整语句时,我收到以下错误:
SQL Error: ORA-00936: missing expression
00936. 00000 - "missing expression"
Run Code Online (Sandbox Code Playgroud)
我无法让它在MySql中工作.我的陈述有些不对劲,但我不确定它是什么.
Rya*_*yan 77
您的查询应该是:
insert into table1 (col1, col2)
select t1.col1, t2.col2
from oldtable1 t1, oldtable2 t2
Run Code Online (Sandbox Code Playgroud)
即没有VALUES部分.
cwa*_*ole 13
摆脱values关键词和parens.你可以在这里看到一个例子.
这是基本的INSERT语法:
INSERT INTO "table_name" ("column1", "column2", ...)
VALUES ("value1", "value2", ...);
Run Code Online (Sandbox Code Playgroud)
这是INSERT SELECT语法:
INSERT INTO "table1" ("column1", "column2", ...)
SELECT "column3", "column4", ...
FROM "table2";
Run Code Online (Sandbox Code Playgroud)
使用'select'作为源时,您不需要'values'子句.
insert into table1 (col1, col2)
select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2;
Run Code Online (Sandbox Code Playgroud)