오라클 11g 입니다.
전체 테이블에서 각 테이블별 등록일자 컬럼(SYS_REG_DT)의 MAX값을 쿼리로 조회하고 싶습니다.
A,B,C 테이블이 있다면 아래와 같이 출력하고 싶습니다.
테이블명 / 등록일자 컬럼
A / 20220102
B / 20220103
C / 20220107
테이블 정보 쿼리를 잘 활용하면 될거 같은데.... 생각보다 잘 안되네요....
혹시 방법이 있을까요?
select * from all_tables 검색하면 필요한 테이블 정보 검색할수 있을겁니다
-- 1. 수동
SELECT 'A' t_nm, MAX(sys_reg_dt) dt FROM a
UNION ALL
SELECT 'B' t_nm, MAX(sys_reg_dt) dt FROM b
UNION ALL
SELECT 'C' t_nm, MAX(sys_reg_dt) dt FROM c
;
-- 2. 자동
SELECT tname
, dbms_xmlgen.getxmltype(
'SELECT MAX(sys_reg_dt) FROM ' || tname
).Extract('//text()')
|| '' AS max_sys_reg_dt
FROM col
WHERE cname = 'SYS_REG_DT'
;
-- 3. 굳이 자동화 할 필요가 있을까? 생각됩니다. 수동 권장.
-- 4. 참고 : http://gurubee.net/article/61164
감사합니다
union all로 다 합쳐서 만들어야 하는거군요...ㅎㅎ