2012-12-12 3 views
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) 

, 덕분에

을 종료되지.

+3

값이 – DrinkJavaCodeJava

답변

1

하나의 명령문에서 여러 개의 삽입을 수행 할 수 없습니다. 각각에 대해 별도의 삽입물을 써야합니다 (예 :

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

또한,이 values하지 value입니다 있습니다.

+0

좋아 복수 할 필요 참조, 나는 그들이 오라클의 최신 버전을 변경할 생각하지만 난 내가 잘못 통보 된 것 같아요. 적시에 답변 해 주셔서 감사합니다. –

+0

@AdamHalegua 환영합니다. –

+0

한 문장으로 여러 개의 삽입을 할 수 있습니다. 링크는 http://www.oracle-developer.net/display.php?id=209 –

1

당신은 또한 각 사이에 UNION ALL를 사용하는 경우

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를 사용할 수있는 하나의 문에있는 모든 레코드를 삽입하기 위해이 명령을 사용할 수 있습니다 선택 :

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

오케이, 그냥 두 번 확인했다. 나는 이것을 완전히 이해하고 있는지 확인하고 싶다. 답변 해 주셔서 감사합니다. –

관련 문제