两个表在表名,列名,数据类型和大小方面完全相同.这些表位于不同的数据库中,但我用于当前以hr用户身份登录.
insert into abc.employees select * from employees where employee_id=100;
Run Code Online (Sandbox Code Playgroud)
我无法使用公司办公室的原始查询.
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:
Run Code Online (Sandbox Code Playgroud)
您应该指定列名称,如下所示.这是一个很好的做法,可能会解决你的问题
insert into abc.employees (col1,col2)
select col1,col2 from employees where employee_id=100;
Run Code Online (Sandbox Code Playgroud)
编辑:
如你所说employees有112列(原文如此!)尝试在下面运行select以比较两个表的列
select *
from ALL_TAB_COLUMNS ATC1
left join ALL_TAB_COLUMNS ATC2 on ATC1.COLUMN_NAME = ATC1.COLUMN_NAME
and ATC1.owner = UPPER('2nd owner')
where ATC1.owner = UPPER('abc')
and ATC2.COLUMN_NAME is null
AND ATC1.TABLE_NAME = 'employees'
Run Code Online (Sandbox Code Playgroud)
而且你应该升级你的表以具有相同的结构.
小智 7
00947 消息表明您尝试发送到 Oracle 的记录缺少创建表时包含的一个或多个列。00913 消息表明您尝试发送到 Oracle 的记录包含的列数多于创建表时包含的列数。您只需要检查两个表(即sql 涉及的表)中的列数及其类型。
| 归档时间: |
|
| 查看次数: |
94088 次 |
| 最近记录: |