출처 : http://blog.naver.com/alexzz/20174631971
/* PK조회 */
SELECT A.TABLE_NAME,
B.COLUMN_NAME,
B.DATA_TYPE,
B.DATA_LENGTH,
B.NULLABLE,
B.DATA_DEFAULT,
(SELECT A1.CONSTRAINT_TYPE
FROM ALL_CONSTRAINTS A1, ALL_CONS_COLUMNS A2
WHERE UPPER (A1.table_name) = A.TABLE_NAME
AND UPPER (A1.owner) = A.OWNER
AND A2.COLUMN_NAME = B.COLUMN_NAME
AND A1.TABLE_NAME = A2.TABLE_NAME
AND A1.OWNER = A2.OWNER
AND A1.CONSTRAINT_NAME = A2.CONSTRAINT_NAME
AND A1.CONSTRAINT_TYPE = 'P') as IS_PK
FROM ALL_TABLES A, ALL_TAB_COLUMNS B
WHERE A.TABLE_NAME = B.TABLE_NAME
AND A.OWNER = B.OWNER
AND UPPER (A.table_name) = '테이블명'
AND UPPER (A.owner) = '오너'
ORDER BY B.TABLE_NAME, B.COLUMN_ID;
/* Index 조회 */
SELECT index_name,un,
REPLACE (SUBSTR (MAX (SYS_CONNECT_BY_PATH (column_name, '/')), 2),'/',',') idex_columns
FROM (SELECT c.index_name,
i.uniqueness un,
c.column_name,
c.column_position rn
FROM user_indexes i, user_ind_columns c
WHERE i.index_name = c.index_name
AND i.table_name = UPPER ('테이블명'))
START WITH rn = 1
CONNECT BY PRIOR index_name = index_name AND PRIOR rn + 1 = rn
GROUP BY index_name, un
ORDER BY un DESC, index_name;
'Oracle' 카테고리의 다른 글
다양한 인덱스 스캔 방식 (0) | 2013.09.27 |
---|---|
필드 숫자 여부 확인 (isnumber) (0) | 2013.09.13 |
Date Format (0) | 2013.08.13 |
ORA-04031 오류로 인한 DB 접속 불가시 처리 방법 (0) | 2013.07.29 |
PL/SQL CURSOR 예제 (0) | 2013.04.24 |