dbms_metadata.get_ddl 사용 방법 요약

set line 200
set pagesize 0
set long 99999
set feedback off
set echo off

1) 테이블, 인덱스, 뷰, 저장 프로시저 및 함수의 DDL 획득

select dbms_metadata.get_ddl('TABLE','TABLE_NAME','TABLE_OWNER') from dual;
select dbms_metadata.get_ddl('INDEX','INDEX_NAME','INDEX_OWNER') from dual;
이중에서 dbms_metadata.get_ddl('VIEW','VIEW_NAME','VIEW_OWNER') 선택;
select dbms_metadata.get_ddl('PROCEDURE','PROCEDURE_NAME','PROCEDURE_OWNER') from dual;
select dbms_metadata.get_ddl('FUNCTION','FUNCTION_NAME','FUNCTION_OWNER') from dual;

다음 스크립트는 특정 스키마 아래의 모든 테이블, 인덱스, 뷰, 저장 프로시저 및 함수의 DDL을 얻는 데 사용됩니다.

set pagesize 0
set long 90000
set feedback off
set echo off
spool schema_ddl.sql
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name,u.owner) FROM DBA_TABLES u;
SELECT DBMS_METADATA.GET_DDL('VIEW',u.view_name,u.owner) FROM DBA_VIEWS u;
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name,u.owner) FROM DBA_INDEXES u;
select dbms_metadata.get_ddl('PROCEDURE',u.object_name, u.owner,) from dba_objects u where u.object_type = 'PROCEDURE';
select dbms_metadata.get_ddl('FUNCTION',u.object_name, u.owner,) from dba_objects u where u.object_type = 'FUNCTION';
스풀 오프;

2) 테이블 공간의 DDL 가져오기
단일 테이블 공간의 DDL 가져오기:
select dbms_metadata.get_ddl('TABLESPACE','TBS_NAME') from dual;

모든 테이블스페이스의 DDL 가져오기:
SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name) FROM DBA_TABLESPACES TS;

3) 사용자의 DDL 가져오기
단일 사용자의 DDL 가져오기:
select dbms_metadata.get_ddl('USER','EPAY_USER') from dual;

모든 사용자에 대한 DDL 가져오기:
SELECT DBMS_METADATA.GET_DDL('USER',U.username) FROM DBA_USERS U;

Guess you like

Origin blog.csdn.net/zhrzhl/article/details/124440130