我在Oracle中收到有关命令未正确结束的错误

时间:2012-12-12 16:23:46

标签: sql oracle

我正在尝试执行多表插入但由于某种原因我收到错误。我在网上看了一下,尝试添加一个半音,但没有用。

错误是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)

感谢任何帮助,谢谢。

3 个答案:

答案 0 :(得分:1)

您无法在一个语句中执行多个插入操作。您必须为每个插件编写单独的插件,例如

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

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

答案 1 :(得分: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;

答案 2 :(得分:1)

您可以随时使用INSERT INTO...SELECT ..FROM dual,在每个选择之间使用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 with Demo

或者您可以使用:

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 with Demo