Oracle DB 테이블 목록 추출 쿼리 입니다.
테이블 정의서 만들때 주로 사용하고 있는데 구글에서 찾아보면 많이 있습니다.
--테이블 목록 추출
SELECT DISTINCT S1.OWNER, S1.TABLE_NAME AS 물리테이블명,
COMMENTS AS 논리테이블명,
TABLESPACE_NAME AS 테이블스페이스명,
NUM_ROWS AS ROW수, --- analize 를 해야 정확한 Row수를 얻는다.
LAST_ANALYZED AS 최종분석일자,
PARTITIONED AS 파티션여부
FROM ALL_TABLES S1,
ALL_TAB_COMMENTS S2
WHERE S1.TABLE_NAME = S2.TABLE_NAME
AND S2.TABLE_TYPE = 'TABLE' -- VIEW (뷰, 테이블 따로 SELECT
AND TABLESPACE_NAME IS NOT NULL --PLAN TABLE 등을 빼기 위해
AND S1.OWNER IN ('Oracle')
-- AND NUM_ROWS >0
-- AND COMMENTS IS NOT NULL
ORDER BY S1.OWNER,S1.TABLE_NAME ;
--테이블 목록 추출
select A.COLUMN_ID, A.COLUMN_NAME,C.COMMENTS,
A.DATA_TYPE
|| case
when A.DATA_PRECISION is not null
then '(' || A.DATA_PRECISION || ',' || A.DATA_SCALE || ')'
else '(' || A.DATA_LENGTH || ')'
end DATA_TYPE, NULLABLE,
case
when B.COLUMN_NAME is not null
then 'PK'
end as PK
from ALL_TAB_COLS A ,ALL_IND_COLUMNS B, ALL_COL_COMMENTS C
where A.OWNER = B.TABLE_OWNER (+)
and A.TABLE_NAME = B.TABLE_NAME (+)
and A.COLUMN_NAME = B.COLUMN_NAME (+)
AND A.TABLE_NAME = C.TABLE_NAME (+)
AND A.COLUMN_NAME = C.COLUMN_NAME (+)
and A.TABLE_NAME = 'XXXXXXX'
order by A.COLUMN_ID;
'DB' 카테고리의 다른 글
[Oracle] ORA-28002: the password will expire within 1 days (0) | 2023.04.11 |
---|---|
PostgreSQL Table 목록 추출 (0) | 2023.04.11 |
Oracle to PostgreSQL 쿼리 변환 (0) | 2023.04.10 |
Postgresql pgpool을 활용한 클러스터 명령어 및 docker-compose (0) | 2023.04.10 |
Postgresql pgpool을 활용한 클러스터링 (0) | 2023.04.10 |