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