DATA_TYPE이 NUMBER인 경우 DATA_PRECISION 와 DATA_SCALE 을 확인해야 합니다.
DATA_SCALE 이 0인 경우 INTEGER로 간주할 수 있습니다.
· DATA_PRECISION : 전체 자릿수 (최대 38 자릿수)
· DATA_SCALE : 소수점 자리수
SELECT A.TABLE_NAME
, A.COLUMN_ID
, A.COLUMN_NAME
, B.COMMENTS
, DATA_TYPE
, (CASE WHEN DATA_TYPE LIKE '%CHAR%' THEN DATA_LENGTH||''
WHEN DATA_TYPE = 'NUMBER' AND DATA_PRECISION > 0 AND DATA_SCALE > 0 THEN DATA_PRECISION||','||DATA_SCALE
WHEN DATA_TYPE = 'NUMBER' AND DATA_PRECISION > 0 THEN DATA_PRECISION||''
END) AS DATA_LENGTH
, DECODE(A.NULLABLE, 'N', '', 'O') AS NULLABLE
FROM ALL_TAB_COLUMNS A
INNER
JOIN ALL_COL_COMMENTS B
ON A.OWNER = B.OWNER
AND A.TABLE_NAME = B.TABLE_NAME
AND A.COLUMN_NAME = B.COLUMN_NAME
WHERE A.OWNER = [스키마명]
AND A.TABLE_NAME = UPPER([테이블명]);
[References]
http://www.gurubee.net/article/68709
ALL_TAB_COLUMNS 테이블 DATA_TYPE 질문이요
TBL_A 라는 테이블이 있고 COL_A라는 컬럼이 있습니다. 토드에서 테이블스키마를 보면 컬럼 타입이 INTEGER로 나오는데요 ALL_TAB_COLUMNS ..
www.gurubee.net
728x90
'DB > ORACLE' 카테고리의 다른 글
[ORACLE] SIGN 함수 (음수, 0, 양수 판단) (0) | 2022.09.13 |
---|---|
[ORACLE] 쿼리 출력하기 (INSERT, SELECT, UPDATE, DELETE) (0) | 2022.08.24 |
[ORACLE] 테이블 조회 (ALL) (0) | 2022.08.24 |
[ORACLE] 프로시저(PROCEDURE) 커서(CURSOR) 출력 방법(REFCURSOR) (0) | 2022.08.24 |
[ORACLE] 임시테이블 생성 (0) | 2022.08.19 |