카테고리 없음
[Oracle] 오라클 SELECT 해서 INSERT 하는 방법
괴발새발개발자
2022. 8. 8. 01:23
1. SELECT 절의 컬럼과 INSERT 테이블의 컬럼이 일치하는 경우
INSERT INTO emp
SELECT 8000
, 'GENT'
, a.job
, a.mgr
, TO_DATE('2021-05-03', 'YYYY-MM-DD')
, a.sal
, a.comm
, a.deptno
FROM emp a
WHERE empno = 7698
-> emp 테이블의 컬럼을 선언하지 않고 INSERT가 가능하다.
2. SELECT 절의 컬럼과 INSERT 테이블의 컬럼이 불일치하는 경우
INSERT INTO emp (empno, ename, job, mgr, hiredate)
SELECT 8001
, 'GENT'
, a.job
, a.mgr
, TO_DATE('2021-05-03', 'YYYY-MM-DD')
FROM emp a
WHERE empno = 7698
-> emp 테이블의 컬럼을 선언해야 한다.
3. SELECT 결과의 조건에 따라서 서로 다른 테이블에 INSERT 하는 방법
INSERT ALL
WHEN job = 'MANAGER' THEN
INTO emp_man (empno, deptno, sal, comm)
VALUES(empno, deptno, sal, comm)
WHEN job = 'SALESMAN' THEN
INTO emp_sal (empno, deptno, sal, comm)
VALUES(empno, deptno, sal, comm)
ELSE
INTO emp_etc (empno, deptno, sal, comm)
VALUES(empno, deptno, sal, comm)
SELECT empno, job, deptno, sal, comm
FROM emp
-> SELECT 결과에 따라서 서로 다른 테이블에 INSERT해야하는 경우 INSERT ALL을 사용하면 하나의 쿼리문으로 작업이 가능하다.
< 출처 >
[Oracle] 오라클 SELECT 해서 INSERT 하는 방법 (여러개, 서브쿼리)
오라클에서 쿼리문을 작성할 때 SELECT INSERT를 사용해야 할 경우가 많다. 기본 자료를 조회 후 전달받은 인자 값과 결합하여 INSERT 하거나, 이력 데이터를 저장할 때 자주 사용한다. SELECT INSERT의 경
gent.tistory.com