오라클 프로시저, 테이블 스크립트

DDL문 추출하기


오라클에서 테이블, 프로시저, 뷰, 시퀀스 등의 스크립트를 추출해야 할 때가 있죠.

보통 오렌지, 토드, SQL Developer 를 활용하여 쉽게 추출을 하기도 합니다.

그런데 정기적으로 추출하여 백업해야 하거나 환경상 SQL*Plus 에서 

추출해야 하는 경우가 있죠.

이럴 때 우리는 DBMS_METADATA 의 GET_DDL 함수를 활용해서 추출할 수 있습니다.

물론 오라클9i 이상에서 지원한다는 점!

그럼 사용 방법을 알아볼까요?


1. 테이블 스크립트 추출

SELECT DBMS_METADATA.GET_DDL('TABLE','TEST_TABLE') FROM DUAL;


2. 프로시저 스크립트 추출

SELECT DBMS_METADATA.GET_DDL('PROCEDURE','PR_TEST') FROM DUAL;


3. VIEW 스크립트 추출

SELECT DBMS_METADATA.GET_DDL('VIEW','V_TEST') FROM DUAL;


4. INDEX 스크립트 추출

SELECT DBMS_METADATA.GET_DDL('INDEX','IDX_TEST1') FROM DUAL;


5. SEQUENCE 스크립트 추출

SELECT DBMS_METADATA.GET_DDL('SEQUENCE','SEQ_TEST') FROM DUAL;


그러면 테이블과 프로시저, 함수, 뷰 등의 목록을 보려면 어떻게 해야할까요?

SELECT OBJECT_NAME FROM USER_OBJECTS WHERE OBJECT_TYPE = 'PROCEDURE';

SELECT OBJECT_NAME

FROM DBA_OBJECTS

WHERE OWNER = 'SMUSER'

AND OBJECT_TYPE = 'PROCEDURE';

OBJECT_TYPE 에 TABLE, FUNCTION, VIEW 를

넣어서 원하는 목록을 추출할 수 있습니다.


그러면 목록을 추출 해서 해당 목록을 가지고 루프를 돌려 스크립트 추출도 가능하겠죠?

그리고 해당 스크립트를 별도 테이블의 CLOB 컬럼에 넣는 것을 다음에 해보겠습니다.

이렇게 백업된 스크립트를 넥사크로 화면에 뿌려주는 예제까지 해보겠습니다.


이상 오라클 Object 스크립트 추출이었습니다.


공감과 댓글, 그리고 구독은 큰 힘이 됩니다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기