오라클 프로시저, 테이블 스크립트
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 스크립트 추출이었습니다.
♥공감과 댓글, 그리고 구독은 큰 힘이 됩니다.