首页 > 数据库 > 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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板