오라클 스키마 스크립트 생성

< 오라클의 스키마를 스크립트로 뽑아내는 방법 1 >

1. exp scott/tiger file=exp.dmp compress=n rows=n

2. imp scott/tiger file=exp.dmp indexfile=create_schema.sql full=y

3. create_schema.sql 에서 REM 주석 제거


< 오라클의 스키마를 스크립트로 뽑아내는 방법 2 >

9i 이상 버전에서 가능

--테이블 스키마 뽑기
--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;

출처 : http://www.jakartaproject.com/board-read.do?boardId=dbtip&boardNo=121266646898587&command=READ&t=1343181695183

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다