两个表在表名、列名、数据类型和大小方面是相同的。这些表位于不同的数据库中,但我习惯于在hr用户中登录。
insert into abc.employees select * from employees where employee_id=100;
我不能给予使用公司办公室的原始查询。
Error starting at line 1 in command:
insert into abc.employees select * from employees where employee_id=100;
Error at Command Line:1 Column:25
Error report:
SQL Error: ORA-00913: too many values
00913. 00000 - "too many values"
*Cause:
*Action:
6条答案
按热度按时间6qfn3psc1#
您应该指定列名称如下。这是很好的练习,可能会解决你的问题
编辑:
正如你所说,
employees
有112列(原文如此!)尝试在下面运行选择以比较两个表的列然后你应该升级你的表,使其具有相同的结构。
xyhw6mcr2#
00947消息表示您试图发送到Oracle的记录缺少创建表时包含的一个或多个列。00913消息表示您试图发送到Oracle的记录包含的列数多于创建表时包含的列数。你只需要检查两个表中的列数和类型,即SQL中涉及的表。
enyaitl33#
如果您在一个表中有112列,并且希望从源表插入数据,则可以执行以下操作:
或从sqlplus执行以下操作:
muk1a3rh4#
对我来说,这是完美的工作
我不知道你为什么会出错。您产生的错误代码的性质是列不匹配。
一个很好的方法是使用@Parodo指定的答案
0sgqnhkj5#
有点晚了。但我看到这个问题发生时,你想插入或删除一行从/到数据库,但你把/拉多行或多个值,
例如:
你想从数据库中删除一行,其中包含一个特定的值,比如一个项目的id,但是你已经查询了一个id列表,那么你会遇到同样的异常消息。
你好。
krcsximq6#
在我的例子中,
insert
语句缺少一列,所以在select
中,我有一个额外的值。在insert语句中添加缺少的列为我修复了错误。希望它能帮助到某人。