티스토리 뷰

반응형

오라클에서 테이블의 컬럼정보를 가지고 있는 딕셔너리 테이블은 ALL_TAB_COLUMNS
를 이용하면 원하는 정보를 얻을 수 있습니다.

SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH
FROM  ALL_TAB_COLUMNS
WHERE OWNER      = :V_OWNER
  AND TABLE_NAME = :V_TABLE_NAME

실무에서 2개의 동일한 테이블이 있을 경우 (데이터 이관작업 테이블)
2개의 테이블이 동일한 구성을 했는 지 검사하는 로직에서 유용하게 사용했습니다.
--------------------------------------------------------------------------
SLEECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH
FROM
(
SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH
FROM  ALL_TAB_COLUMNS
WHERE OWNER      = :V_OWNER
  AND TABLE_NAME = 'T_A'
)
MINUS
(
SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH
FROM  ALL_TAB_COLUMNS
WHERE OWNER      = :V_OWNER
  AND TABLE_NAME = 'T_B'
)
--------------------------------------------------------------------------
결과 값이 하나라도 있으면 2개의 테이블은 동일한 구성이 아닌게 되겠죠.
반응형