메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Oracle INSERT ALL (다건 입력)

DB CAFE
Dbcafe (토론 | 기여)님의 2024년 9월 30일 (월) 02:06 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

Oracle INSERT ALL(다건 입력)

multi_table_insert.gif

다건 입력(INSERT) 방법

INSERT ALL을 사용하는 방법

INSERT ALL 
    INTO [테이블] ( [COLUMN1], [COLUMN2], ...) VALUES ( [VALUE1], [VALUE2], ...)
    INTO [테이블] ( [COLUMN1], [COLUMN2], ...) VALUES ( [VALUE1], [VALUE2], ...)
	...
    INTO [테이블] ( [COLUMN1], [COLUMN2], ...) VALUES ( [VALUE1], [VALUE2], ...)
SELECT * FROM DUAL;

INSERT ALL 조건별로 다른테이블에 입력

conditional_insert_clause.gif

INSERT ALL 
	WHEN 조건A1 THEN INTO 테이블_A (컬럼이름X1, 컬럼이름X2) -- 테이블_A 에 입력 
	WHEN 조건A2 THEN INTO 테이블_B (컬럼이름Y1, 컬럼이름Y2) -- 테이블_B 에 입력 
-- SELECT 구문 
 SELECT 컬럼이름A1, 컬럼이름A2
   FROM 테이블이름A;

UNION ALL을 사용하는 방법

INSERT INTO [테이블] ([COLUMN1], [COLUMN2], ...) 
		   SELECT ([VALUE1], [VALUE2], ...) FROM DUAL 
 UNION ALL SELECT ([VALUE1], [VALUE2], ...) FROM DUAL 
 ...
 UNION ALL SELECT ([VALUE1], [VALUE2], ...) FROM DUAL
 ;

다건 입력 예시

테이블 생성

CREATE TABLE TEST (
	A_COM VARCHAR2(20),
	B_COL VARCHAR2(20),
	C_COL VARCHAR2(20)
);

INSERT ALL 방식 입력

INSERT ALL 
	INTO TEST ( A_COM, B_COL, C_COL ) VALUES ('val01','val02','val03')
	INTO TEST ( A_COM, B_COL, C_COL ) VALUES ('val01','val02','val03')
	...
	INTO TEST ( A_COM, B_COL, C_COL ) VALUES ('val01','val02','val03')
SELECT * FROM DUAL;

UNION ALL 방식

INSERT INTO TEST ( A_COM, B_COL, C_COL )
	SELECT ('val01','val02','val03') FROM DUAL UNION ALL
	SELECT ('val01','val02','val03') FROM DUAL UNION ALL
	...
	SELECT ('val01','val02','val03') FROM DUAL;