Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

괴발개발 개발하다

[Oracle] 오라클 SELECT 해서 INSERT 하는 방법 본문

카테고리 없음

[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을 사용하면 하나의 쿼리문으로 작업이 가능하다.

 

 

 

< 출처 >

https://gent.tistory.com/404

 

[Oracle] 오라클 SELECT 해서 INSERT 하는 방법 (여러개, 서브쿼리)

오라클에서 쿼리문을 작성할 때 SELECT INSERT를 사용해야 할 경우가 많다. 기본 자료를 조회 후 전달받은 인자 값과 결합하여 INSERT 하거나, 이력 데이터를 저장할 때 자주 사용한다. SELECT INSERT의 경

gent.tistory.com