"DBMS METADATA DDL"의 두 판 사이의 차이
DB CAFE
(→테이블 생성 스크립트) |
(→인덱스 생성 스크립트) |
||
12번째 줄: | 12번째 줄: | ||
==인덱스 생성 스크립트== | ==인덱스 생성 스크립트== | ||
<source lang=sql> | <source lang=sql> | ||
− | SELECT DBMS_METADATA.GET_DDL('INDEX','IX_BOARD') FROM DUAL; | + | SELECT DBMS_METADATA.GET_DDL('INDEX','IX_BOARD','OWNER') FROM DUAL; |
</source> | </source> | ||
=== PK 확인 스크립트 === | === PK 확인 스크립트 === |
2018년 8월 28일 (화) 16:44 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 테이블,인덱스,프로시저의 생성 스크립트 추출[편집]
DBMS_METADATA 패키지의 GET_DDL 함수 사용
1.1 테이블 생성 스크립트[편집]
SELECT DBMS_METADATA.GET_DDL('TABLE','TB_BOARD','OWNER') FROM DUAL;
1.2 인덱스 생성 스크립트[편집]
SELECT DBMS_METADATA.GET_DDL('INDEX','IX_BOARD','OWNER') FROM DUAL;
1.2.1 PK 확인 스크립트[편집]
SELECT A.OWNER
, A.TABLE_NAME
, B.CONSTRAINT_NAME
-- , C.COLUMN_NAME
-- , COUNT(*) OVER (PARTITION BY A.OWNER,B.CONSTRAINT_NAME) AS DUP
FROM DBA_TABLES A
, DBA_CONSTRAINTS B
, DBA_CONS_COLUMNS C
-- , MIG_TABLES D
WHERE A.TABLE_NAME = B.TABLE_NAME
AND A.OWNER = B.OWNER
-- AND D.TABLE_NAME = B.TABLE_NAME
-- AND D.OWNER = B.OWNER
AND B.CONSTRAINT_NAME = C.CONSTRAINT_NAME
AND B.CONSTRAINT_TYPE = 'P'
GROUP BY A.OWNER
, A.TABLE_NAME
, B.CONSTRAINT_NAME
ORDER BY 1,2,3
1.3 프로시져 생성 스크립트[편집]
SELECT DBMS_METADATA.GET_DDL('PROCEDURE','P_BOARD') FROM DUAL;
1.4 시퀀스 생성 스크립트[편집]
SELECT DBMS_METADATA.GET_DDL('SEQUENCE','SEQ_BOARD') FROM DUAL;
1.5 생성스크립트 파일로 저장하기[편집]
- 테이블, 인덱스, 시퀀스, 프로시저 생성 스크립트를 파일로 저장.
set pagesize 0
set long 90000
set feedback off
set echo off
spool board.sql
SELECT DBMS_METADATA.GET_DDL('TABLE', U.OBJECT_NAME) FROM USER_OBJECTS U WHERE OBJECT_TYPE='TABLE';
SELECT DBMS_METADATA.GET_DDL('INDEX', U.OBJECT_NAME) FROM USER_OBJECTS U WHERE OBJECT_TYPE='INDEX';
SELECT DBMS_METADATA.GET_DDL('SEQUENCE', U.OBJECT_NAME) FROM USER_OBJECTS U WHERE OBJECT_TYPE='SEQUENCE';
SELECT DBMS_METADATA.GET_DDL('PROCEDURE', U.OBJECT_NAME) FROM USER_OBJECTS U WHERE OBJECT_TYPE='PROCEDURE';
spool off