본문 바로가기
Database

[ORACLE] ALL_CATALOG() 초보도 이해하는 데이터 딕셔너리 활용법

by Dev. Orion 2025. 6. 18.

오라클 ALL_CATALOG() 초보도 이해하는 데이터 딕셔너리 활용법
[Oracle] ALL_CATALOG

 

Oracle Database는 다양한 시스템 뷰를 통해 메타데이터를 제공합니다. 그중 ALL_CATALOG 뷰는 사용자가 접근 가능한 데이터베이스 오브젝트에 대한 통합 정보를 조회할 수 있는 대표적인 뷰입니다. 개발자, DBA 모두에게 필수적인 뷰로, 시스템 탐색이나 객체 관리를 단순화하는 데 큰 도움이 됩니다.

1. ALL_CATALOG란 무엇인가?

ALL_CATALOG는 사용자가 접근할 수 있는 테이블, 뷰, 시노님 등 주요 데이터 오브젝트에 대한 정보를 한 곳에서 통합적으로 제공하는 시스템 뷰입니다. 기본적으로 ALL_OBJECTS와 유사하지만, 그 중에서도 일반적으로 가장 많이 쓰이는 오브젝트들에 초점을 맞추어 필터링된 정보를 제공합니다.

2. 주요 컬럼 설명

ALL_CATALOG 뷰는 다음과 같은 컬럼을 포함하고 있습니다:

컬럼명 설명
OWNER 오브젝트의 소유자
TABLE_NAME 오브젝트의 이름
TABLE_TYPE 오브젝트 유형 (TABLE, VIEW, SYNONYM 등)

3. 실무 활용 사례

3.1 전체 사용 가능한 오브젝트 목록 조회


SELECT * FROM ALL_CATALOG;

접근 권한이 부여된 모든 테이블, 뷰, 시노님을 빠르게 나열할 수 있습니다.

3.2 특정 유형의 오브젝트만 필터링


SELECT TABLE_NAME
FROM ALL_CATALOG
WHERE TABLE_TYPE = 'VIEW';

현재 사용자가 접근 가능한 모든 뷰 목록을 조회할 수 있습니다.

3.3 특정 스키마의 테이블 조회


SELECT TABLE_NAME
FROM ALL_CATALOG
WHERE OWNER = 'HR' AND TABLE_TYPE = 'TABLE';

HR 스키마에 존재하는 테이블만을 한정적으로 조회할 수 있습니다.

3.4 애플리케이션 내 검색 자동화

어떤 테이블이 현재 세션에서 접근 가능한지 판단할 때 빠르게 활용 가능합니다. 특히 동적 SQL을 생성하거나, 코드 자동화 도구에서 사용 시 유용합니다.

4. 관련 뷰와 비교 분석

유사한 목적을 가진 시스템 뷰들과의 차이점을 정확히 이해하는 것이 중요합니다.

뷰 이름 주요 포함 항목 접근 범위 특징
ALL_CATALOG TABLE, VIEW, SYNONYM 권한이 있는 오브젝트 가볍고 빠른 조회용
ALL_OBJECTS 모든 오브젝트 유형 권한이 있는 전체 오브젝트 상세 정보, 생성일 포함
DBA_CATALOG TABLE, VIEW, SYNONYM 모든 사용자 대상 DBA만 접근 가능
USER_CATALOG TABLE, VIEW, SYNONYM 현재 사용자 소유만 개인 개발 환경에 적합

5. 성능과 보안 관점 팁

  • 보안상 권한 관리: ALL_CATALOG은 접근 권한이 있는 오브젝트만을 보여주므로, 누락된 항목이 있다면 권한 이슈를 점검해야 합니다.
  • 성능 최적화: 불필요한 전체 검색을 피하고 WHERE 절로 필요한 스키마나 타입만 제한하여 사용하는 것이 좋습니다.
  • 오토컴플리션: SQL 에디터에서 테이블 자동완성 기능에 활용하기 좋습니다.

6. 결론

ALL_CATALOG 뷰는 Oracle 데이터베이스에서 매우 실용적이고 가볍게 사용할 수 있는 메타데이터 뷰입니다. 빠르게 객체 리스트를 조회하거나 애플리케이션에서 메타 정보를 처리해야 할 때 유용하며, 오브젝트를 유형별로 필터링할 수 있는 기능을 통해 다양한 실무 요구를 충족시킬 수 있습니다. 특히 데이터 구조를 빠르게 파악해야 하는 신규 프로젝트나 마이그레이션 작업에서 필수적인 뷰로 활용될 수 있습니다.

7. 출처