0

我正在尝试进行多表插入,但由于某种原因出现错误。我在网上查看并尝试添加一个分号,但没有奏效。

错误是 SQL 错误:ORA-00933:SQL 命令未正确结束

这是我的代码

Insert Into EMP (empno,ename,job,mgr,sal,deptno)
Value    (4600,'BOB','CONSULT',4699,900,60),                                                
(5300,'AILEEN','MANAGER',7839,1800,40),
(9873,'RYAN','CONSULT',4699,800,50)

任何帮助表示赞赏,谢谢。

4

3 回答 3

1

您不能在一个语句中执行多个插入。您必须为它们中的每一个编写单独的插入,例如

insert into table_1 (...) values (...);
insert into table_1 (...) values (...);
etc.

另外,请注意它是values,而不是value

于 2012-12-12T16:26:56.190 回答
1

您还可以使用此命令在单个语句中插入所有记录

Insert all Into EMP (empno,ename,job,mgr,sal,deptno)
Values    (4600,'BOB','CONSULT',4699,900,60)
Into EMP (empno,ename,job,mgr,sal,deptno)
values (5300,'AILEEN','MANAGER',7839,1800,40)
Into EMP (empno,ename,job,mgr,sal,deptno)
values (9873,'RYAN','CONSULT',4699,800,50)
select * from dual;
于 2012-12-12T16:37:49.993 回答
1

您始终可以在每次选择之间INSERT INTO...SELECT ..FROM dual使用使用 a 的位置:UNION ALL

insert into EMP (empno,ename,job,mgr,sal,deptno)
select 4600,'BOB','CONSULT',4699,900,60
from dual
union all
select 5300,'AILEEN','MANAGER',7839,1800,40
from dual
union all
select 9873,'RYAN','CONSULT',4699,800,50
from dual;

请参阅带有演示的 SQL Fiddle

或者您可以使用:

INSERT ALL 
    INTO emp (empno, ename, job, mgr, sal, deptno)
         VALUES (4600, 'BOB', 'CONSULT', 4699, 900, 60)
    INTO emp (empno, ename, job, mgr, sal, deptno)
         VALUES (5300, 'AILEEN', 'MANAGER', 7839, 1800, 40)
    INTO emp (empno, ename, job, mgr, sal, deptno)
         VALUES (9873, 'RYAN', 'CONSULT', 4699, 800, 50)
SELECT * 
FROM dual;

请参阅带有演示的 SQL Fiddle

于 2012-12-12T16:53:10.413 回答