2012-12-12 30 views
0

我想做一個多表插入,但出於某種原因我得到一個錯誤。我在網上看,並嘗試添加一個半精靈,並沒有工作。我得到一個關於命令沒有正確結束的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

值必須是複數 – DrinkJavaCodeJava

回答

1

您不能在一個語句中執行多次插入。你必須爲每一個插入單獨的插入,例如

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

另外,還要注意它的values,不value

+0

好吧,我以爲他們改變了它在最新版本的Oracle,但我想我是以訛傳訛。感謝您的及時回覆。 –

+0

@AdamHalegua不客氣。 –

+0

您可以在一個語句中執行多個插入操作,請參閱此處的鏈接http://www.oracle-developer.net/display.php?id=209 –

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; 
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

+0

是否有理由在上面給出的方式上使用這種方式? –

+0

@AdamHalegua沒有理由,我只是表明有多種方式來執行此操作。這真的取決於你想用什麼方式。 – Taryn

+0

噢好吧,我只是雙重檢查。我只是想確保我完全理解這一點。感謝您的迴應。 –

相關問題