반응형
회사 프로젝트에서 다중 데이터를 조회하여 필요한 컬럼들만 쏙쏙 뽑아서 INSERT 해야하는 경우가 빈번히 발생합니다.
지난 프로젝트에서도 사용했었는데 이번 기회에 잊어버리지 않도록 정리할 예정입니다 :-)
구문형식은 아래와 같습니다.
// 일반적인 INSERT 구문
INSERT INTO [테이블명] (컬럼명1, 컬럼명2, ....)
VALUES (값1, 값2, ...);
//여러 행 INSERT 구문
INSERT INTO [테이블명] (컬럼명1, 컬럼명2, ....)
SELECT ...
SELECT 구문에는
SELECT 하는 테이블에 존재하지 않는 컬럼이더라도 #{값}#을 이용하여 INSERT 가 가능합니다.
INSERT INTO TABLE_A (A_T1, A_T2, A_T3, A_T4, A_T5)
SELECT B_T1, B_T2, #bT3#, #bT4#, B_T5
FROM TABLE_B
WHERE B_T6 = 'B';
위와 같이 응용할 수 있습니다.
당연히 SELECT 구문에서는 JOIN 문도 사용이 가능합니다.
예시에서 #bT3#, #bT4# 는 TABLE_B 에 없는 컬럼이며, view 단에서 데이터를 불러와 넣을 수 있는 것이죠.
위와같은 쿼리를 통해 SELECT 문과 INSERT 문 2가지를 별도로 만들지 않고, 1개의 쿼리로도
다중 데이터를 INSERT 할 수 있습니다.
대신, INSERT 하고자 하는 컬럼 수와 SELECT 하는 컬럼 수는 꼭 맞춰주어야 합니다.
컬럼명보다는 갯수가 중요한 것이니 꼭 기억하세요!
반응형
'DBMS > Oracle' 카테고리의 다른 글
[Oracle] Mybatis (select, insert, update, delete 문) 예제 (0) | 2020.05.20 |
---|---|
[Oracle] 오라클 세션 확인 및 세션 킬(kill) 하는 방법 (0) | 2020.05.11 |
[Oracle] SQL 튜닝_4. SQL TRACE (0) | 2019.12.07 |
[Oracle] SQL 튜닝_3. 성능 모니터링 (0) | 2019.11.30 |
[Oracle] SQL 튜닝_2. DBMS 아키텍처 (0) | 2019.11.23 |
최근댓글