问题描述
执行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种::
- 指定上面sql,使用相同长度的列
- 同步table1和tables2,使它们具有相同的列数。