상세 컨텐츠

본문 제목

DBMS_METADATA 패키지를 이용

DataBase/Oracle

by 탑~! 2012. 7. 13. 15:55

본문

Oracle 9i 이상의 스키마 스크립트 받기

 

DBMS_METADATA 패키지를 이용

--테이블 스키마 뽑기

--DBMS_METADATA.GET_DDL('TABLE', '테이블명', '테이블소유자')

 

SELECT DBMS_METADATA.GET_DDL('TABLE', TABLE_NAME, 'EIS')||';'
FROM USER_TABLES;

 

 

--인덱스 스키마 뽑기

--DBMS_METADATA.GET_DDL('INDEX', '인덱스명', '인덱스소유자')

SELECT DBMS_METADATA.GET_DDL('INDEX', INDEX_NAME, 'EIS')||';'
FROM USER_INDEXES;

 

--테이블 스페이스 스키마 뽑기                     
-- TABLESPACE와 USER는 DBA 궈한이 있는 유저로 실행
SELECT DBMS_METADATA.GET_DDL('TABLESPACE',TABLESPACE_NAME)||';'
FROM DBA_TABLESPACES
WHERE TABLESPACE_NAME NOT IN ('SYSTEM','TEMP','USERS','TOOLS')
AND STATUS = 'ONLINE';

 

 

--유저 스키마 뽑기

SELECT DBMS_METADATA.GET_DDL('USER', USERNAME)||';'

FROM DBA_USERS;

 

--SEQUENCE 스키마 뽑기

DBMS_METADATA.GET_DDL('SEQUENCE', '시퀀스명', '시퀀스소유자'

SELECT DBMS_METADATA.GET_DDL('SEQUENCE', SEQUENCE_NAME, 'EIS')||';'
FROM USER_SEQUENCES;

관련글 더보기