by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

14S_데이터 펌프 언로드




1. 데이터 펌프 언로드

  • 오라클 10g 버전부터 EXPDP/IMPDP와 같은 바이너리 포멧으로 데이터를 추출하는 기능을 제공
    
    -- 디렉토리 생성
    SQL> create or replace directory tmp as '/tmp';
    
    디렉토리가 생성되었습니다.
    
    -- 데이터를 바이너리 파일로 저장(/tmp/allobjects.dat)
    CREATE TABLE ALL_OBJECTS_UNLOAD
    ORGANIZATION EXTERNAL
    ( 
      TYPE ORACLE_DATAPUMP
      DEFAULT DIRECTORY TMP
      LOCATION( 'allobjects.dat')
    )
    AS
     SELECT * FROM ALL_OBJECTS;
    
    테이블이 생성되었습니다.
    
    -- 바이너리 파일이라 사람이 읽어볼 수 없음
    [oracle@mydream demo_dir]$ ls -al /tmp/allobjects.dat
    -rw-r----- 1 oracle dba 7450624 12월 30 07:47 /tmp/allobjects.dat
    
    
    -- 테이블 스크립트 추출
    SQL> SELECT DBMS_METADATA.GET_DDL('TABLE', 'ALL_OBJECTS_UNLOAD') FROM DUAL;
    
    DBMS_METADATA.GET_DDL('TABLE','ALL_OBJECTS_UNLOAD')
    --------------------------------------------------------------------------------
      CREATE TABLE "GENIE"."ALL_OBJECTS_UNLOAD" 
       (	"OWNER" VARCHAR2(30), 
    	"OBJECT_NAME" VARCHAR2(30), 
    	"SUBOBJECT_NAME" VARCHAR2(30), 
    	"OBJECT_ID" NUMBER, 
    	"DATA_OBJECT_ID" NUMBER, 
    	"OBJECT_TYPE" VARCHAR2(19), 
    	"CREATED" DATE, 
    	"LAST_DDL_TIME" DATE, 
    	"TIMESTAMP" VARCHAR2(19), 
    	"STATUS" VARCHAR2(7), 
    	"TEMPORARY" VARCHAR2(1), 
    	"GENERATED" VARCHAR2(1), 
    	"SECONDARY" VARCHAR2(1), 
    	"NAMESPACE" NUMBER, 
    	"EDITION_NAME" VARCHAR2(30)
       ) 
       ORGANIZATION EXTERNAL 
        ( TYPE ORACLE_DATAPUMP
          DEFAULT DIRECTORY "TMP"
         
          LOCATION
           ( 'allobjects.dat'
           )
        )
     
    
    -- 데이터를 LOAD해야할 시스템으로 데이터파일(allobjects.dat)을 복사하고 테이블 생성 또는 원하는 테이블에 데이터 입력
    CREATE TABLE TEST_TABLE
    AS
    SELECT * FROM ALL_OBJECTS_UNLOAD;
    
    테이블이 생성되었습니다.
    

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.