首页 >数据库 >mysql教程 >如何在Oracle 11g中正确使用INSERT SELECT以避免ORA-00936?

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

DDD
DDD原创
2024-12-23 20:12:10957浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn