기존 소스 수정바람...........
WITH V_INDEX AS
(
SELECT A.PNO
, B.TABLE_NAME
, B.COLUMN_NAME
, B.COLUMN_POSITION
FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY A.TABLE_NAME ORDER BY A.INDEX_NAME) AS PNO
, A.INDEX_NAME
, A.TABLE_NAME
FROM USER_INDEXES A
WHERE 1=1
AND A.UNIQUENESS = 'NONUNIQUE'
) A
, USER_IND_COLUMNS B
WHERE A.INDEX_NAME = B.INDEX_NAME
)
SELECT A.TNAME AS TBLID
, A.COLNO AS COLNO
, A.CNAME AS COLID
, C.COLUMN_POSITION AS PK
, A.COLTYPE AS "TYPE"
, DECODE(A.COLTYPE, 'NUMBER', TO_CHAR(A.PRECISION)||','||TO_CHAR(A.SCALE), TO_CHAR(A.WIDTH)) AS WIDTH
, DECODE(A.NULLS, 'NULL', '', A.NULLS) "NULLS"
, A.DEFAULTVAL AS "DEFAULT"
, E.COLUMN_POSITION AS "IX1"
, F.COLUMN_POSITION AS "IX2"
, G.COLUMN_POSITION AS "IX3"
FROM COL A
, USER_COL_COMMENTS B
, (
SELECT A.TABLE_NAME, A.COLUMN_NAME, A.COLUMN_POSITION
FROM USER_IND_COLUMNS A, USER_INDEXES B
WHERE A.INDEX_NAME = B.INDEX_NAME
AND B.UNIQUENESS = 'UNIQUE'
) C
, USER_TAB_COMMENTS D
, V_INDEX E
, V_INDEX F
, V_INDEX G
WHERE A.TNAME = B.TABLE_NAME(+)
AND A.CNAME = B.COLUMN_NAME(+)
AND A.TNAME = C.TABLE_NAME(+)
AND A.CNAME = C.COLUMN_NAME(+)
AND A.TNAME = D.TABLE_NAME(+)
AND A.TNAME = E.TABLE_NAME(+)
AND A.CNAME = E.COLUMN_NAME(+)
AND 1 = E.PNO(+)
AND A.TNAME = F.TABLE_NAME(+)
AND A.CNAME = F.COLUMN_NAME(+)
AND 2 = F.PNO(+)
AND A.TNAME = G.TABLE_NAME(+)
AND A.CNAME = G.COLUMN_NAME(+)
AND 3 = G.PNO(+)
AND A.TNAME NOT LIKE 'BIN$%'
--AND (A.TNAME LIKE 'OA%' OR A.TNAME LIKE 'IF%' OR A.TNAME LIKE 'PB%')
AND A.TNAME IN
(
''
)
ORDER BY D.TABLE_TYPE, A.TNAME, A.COLNO
;
select *
from USER_TAB_COMMENTS;
'전산Tip > Oracle' 카테고리의 다른 글
[빈도추출] 오라클로 범주형, 연속형 빈도 추출 view 만들기 (3) | 2013.03.12 |
---|---|
[ORACLE] 테이블스페이스 모니터 (2) | 2011.12.09 |
[ORACLE] 테이블 레코드값 INSERT 쿼리 자동 생성 (0) | 2011.11.18 |