• 분류 전체보기 (160)
    • 개인프로젝트 (5)
      • 시연영상모음 (4)
      • 주저리주저리.. (1)
    • 자바스크립트이야기 (69)
      • ExtJS (30)
      • ExtJS 유의사항 (3)
      • HTML5 (1)
      • jQuery (17)
      • jQuery플러그인소개 (9)
      • jQuery UI 소개 (9)
    • 스프링연동하기 (23)
      • spring3 mvc 설정 (4)
      • spring3 mybatis 설정 (4)
      • spring3 기타설정 (11)
      • ibatis and mybatis (4)
    • DB (26)
      • MySQL vs MS-SQL vs O.. (5)
      • MySQL (10)
      • MSSQL (5)
      • Oracle (6)
    • 서버에웹환경구축하기 (13)
      • 1.VirtualBox+CentOS .. (5)
      • 2.JAVA(JDK) 설치 (1)
      • 3.Apache+Tomcat 설치 (3)
      • 4,SVN Server 설치 (1)
      • 5.마리아DB(MariaDB) 설치 (2)
      • 6.몽고DB(MongoDB)설치 (1)
    • 샘플소스 (14)
      • 샘플소스(JAVA) (7)
      • 샘플소스(JSTL) (4)
      • 샘플소스(jQuery/스크립트) (3)
    • 에디터연동 (5)
      • NAVER-스마트에디터 (4)
      • DAUM-다음에디터 (1)
    • 블로그팁 (3)
    • 디지털이야기 (2)
댓글
/144
2014. 8. 13. 10:43
오라클(Oracle) 데이터를 일괄로 다른테이블에 INSERT 하기 (INSERT INTO ... SELECT ... FROM ...)


2014/08/12 - [DB/MySQL] - MySQL SELECT 쿼리로 한꺼번에 다른 테이블에 INSERT 하기 (INSERT ... SELECT ... FROM ...)


2014/08/13 - [DB/MSSQL] - MS-SQL SELECT 쿼리로 다른 테이블로 INSERT (INSERT SELECT FROM , SELECT INTO FROM)


오라클에서 데이터 이관하는 작업과 같은 일괄로 다른 테이블에 INSERT해야하는 경우가 생긴다.

이럴경우 INSERT INTO .. SELECT ... FROM 을 이용하여 다른 테이블에 데이터를 

일괄 등록이 가능하다


간단하게 진행을 해보도록 하자


1. original_table 생성 (기존 테이블)

create table original_table (
  id varchar(10),
  title varchar(20),
  flag varchar(1)
)

2. new_table 생성(데이터 이관하기 위한 신규 테이블)

create table new_table (
  id varchar(10),
  title varchar(20)
)

3. original_table에 임의 데이터 생성

insert into original_table (id,title,flag) values('1','제목11','Y');
insert into original_table (id,title,flag) values('2','제목22','Y');
insert into original_table (id,title,flag) values('3','제목33','Y');
insert into original_table (id,title,flag) values('4','제목44','Y');
insert into original_table (id,title,flag) values('5','제목55','Y');
insert into original_table (id,title,flag) values('6','제목66','Y');
insert into original_table (id,title,flag) values('7','제목77','Y');
insert into original_table (id,title,flag) values('8','제목88','N');
insert into original_table (id,title,flag) values('9','제목99','Y'); 

4. original_table -> new_table 로 flag값이 N인 데이터만 이관

    (예상 결과 = id값이 8인 데이터만 insert 되겠지? ㅎㅎ)

INSERT INTO new_table(id,title)
SELECT id,title
  FROM original_table 
WHERE flag = 'N'

5. 신규 테이블에 INSERT 데이터 확인

SELECT * FROM new_table

- 실행결과



역시 예상대로 ID값이 8인 데이터만 INSERT 되었다.

일괄로 모든 데이터 넣고 싶을경우에는 WHERE 조건만 빼면 될것이다.




슈퍼맨슈퍼맨슈퍼맨



도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!

저작자표시

'DB > Oracle' 카테고리의 다른 글

Oracle - if ~ else 조건문 사용하기 : DECODE  (0) 2014.08.24
오라클 - 널체크(NVL 사용하기)  (0) 2014.08.23
ORACLE 오라클 rownum을 이용하여 페이징 처리하기  (0) 2014.08.15
오라클 계층형 트리구조 쿼리 (재귀호출) - START WITH .. CONNECT BY PRIOR  (0) 2014.08.12
오라클(Oracle) sequence 생성, 등록, 최종 시퀀스값 조회하기  (2) 2014.08.11

티스토리툴바