问题描述

执行oracle sql时,或者编译存储过程时,遇到下面的错误:
ORA-00913: too many values

用法一:
insert into table1 select * from table2 where a = ‘’;

原因

你尝试执行一个需要两组相等值的SQL语句,但是你在第二个集合中输入的项比在第一个集合中输入的更多。

解决

出错的sql没有指定使用的列,而是全部查出来。
查看两个table的列数:

select * from all_tab_columns where table_name = 'TABLE1';
select * from all_tab_columns where table_name = 'TABLE2';

发现确实是不同。

解决方法如下2种::

  1. 指定上面sql,使用相同长度的列
  2. 同步table1和tables2,使它们具有相同的列数。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐