오라클 메타데이터

Oracle metadata

Oracle Database는 데이터베이스의 모든 테이블, 보기, 절차에 대한 정보를 제공한다.이 정보에 대한 정보를 메타데이터라고 한다.데이터 사전 테이블(내장 뷰를 통해 액세스 가능)과 메타데이터 레지스트리의 두 위치에 저장된다.

다른 관계형 데이터베이스 관리 시스템정보 스키마라고 불리는 ANSI 표준 등가물을 지원한다.

메타데이터 보기

이러한 보기의 총 수는 Oracle 버전에 따라 다르지만 1000개 범위에 있다.

Oracle RDBMS 데이터 사전 테이블에 액세스하는 주요 기본 제공 보기는 거의 없으며, 다음과 같다.

  • ALL_OBTS – 현재 사용자가 액세스할 수 있는 현재 데이터베이스의 모든 개체 목록
  • ALL_TABLE – 현재 사용자가 액세스할 수 있는 현재 데이터베이스의 모든 테이블 목록
  • ALL_VIEW – 현재 사용자가 액세스할 수 있는 현재 데이터베이스의 모든 보기 목록
  • ALL_TAB_COLumns – 현재 사용자가 액세스할 수 있는 데이터베이스의 모든 열 목록
  • ALL_ARGENTS – 현재 사용자가 액세스할 수 있는 기능 및 절차의 주장을 나열한다.
  • ALL_ERRUS – 현재 사용자가 액세스할 수 있는 모든 저장된 개체(보기, 절차, 기능, 패키지 및 패키지 본문)의 오류에 대한 설명을 나열하십시오.
  • ALL_OBLE_SIZE – Oracle 버전 5와의 역호환성을 위해 포함.
  • ALL_PROCEDURES – (오라클 9 이후 버전) 현재 사용자가 액세스할 수 있는 모든 기능 및 절차(관련 속성)를 나열한다.
  • ALL_SOURCE – 현재 사용자가 액세스할 수 있는 저장된 개체의 텍스트(예: PL/SQL) 소스 설명
  • ALL_트리거 – 현재 사용자가 액세스할 수 있는 모든 트리거를 나열하십시오.

또한 현재 사용자가 소유한 개체(즉, 메타데이터에 대한 더 제한된 보기)만 표시하는 등가 보기 "USER_"와 데이터베이스의 모든 개체(즉, 데이터베이스 인스턴스의 메타데이터에 대한 제한되지 않은 전역 보기)를 표시하는 접두사 "DBA_"도 있다.당연히 "DBA_" 메타데이터 뷰에 액세스하려면 특정 권한이 필요하다.

예제 1: 테이블 찾기

테이블 이름에 패턴이 있는 모든 테이블 찾기

  선택 소유자 AS 스키마_이름, 테이블_이름   From   올_테이블   어디에  테이블_이름 맘에 들다 '%PATNER%'   주문  BY 소유자, 테이블_이름; 

예제 2: 열 찾기

열 이름에서 특정 패턴과 일치하는 열이 하나 이상 있는 모든 테이블 찾기

  선택 소유자 AS 스키마_이름, 테이블_이름, 컬럼_이름   From   All_Tab_Columns   어디에  컬럼_이름 맘에 들다 '%PATNER%'   주문  BY 1,2,3; 

예제 3: 열 행 개수

PATNATE와 일치하는 열 이름을 포함하는 모든 테이블의 총 행 수 추정(이것은 SQL*Plus 특정 스크립트임)

  컬럼 모조의 노프린트   계산 SUM OF Num_ROWS 켜기 모조의   브레이크 켜기 모조의   선택    NULL 모조의,    T.표_이름,    C.컬럼_NAME,    T.Num_ROWS   From    ALL_TABLE T,    ALL_TAB_COLUMNS C   어디에    T.표_이름 = C.표_이름    AND C.컬럼_NAME 맘에 들다 '%PATNER%'    AND T.소유자 = C.소유자   주문 BY T.표_이름; 

NUM_ROWS는 마지막으로 분석했을 때와 분석했을 때 표에 있는 행의 수를 기록한다는 점에 유의하십시오.이것은 현재 표에 있는 실제 행의 수와 다를 가능성이 크다.

예제 4: 뷰 열 찾기

보기 열 찾기

선택 표_이름,     column_name,     암호를 해독하다(c.DATA_TYPE,        'VARCHAR2',        c.DATA_TYPE    '('    c.DATA_LENTH    ')',        '숫자',        디코딩(c.data_properties,             NULL,             c.DATA_TYPE,             0,                  c.DATA_TYPE,             c.DATA_TYPE    '('    c.data_properties    디코딩(c.data_scale,                                     NULL,                                     ')',                                     0,                                     ')' ,                                     ', '    c.data_scale    ')')),        c.DATA_TYPE) data_type  From 망아지를 c, 오비지 o  어디에 c.표_이름 = o.object_name    AND o.object_type = 'VIEW'       AND c.table_name 맘에 들다 '%PATNER%'    주문 BY c.table_name, c.column_id; 

경고:이는 char, varchar 및 타임스탬프를 포함한 여러 데이터 유형과 관련하여 불완전하며 매우 오래되고 사용되지 않는 사전 보기를 오라클 5로 다시 사용한다.

테이블 및 열 이름에 밑줄 사용

밑줄은 단일 문자와 특별한 SQL 패턴 매칭이며, 실제로 쿼리의 LIKE 절에서 밑줄 문자를 찾는 경우 이스케이프해야 한다.

LIKE 문 뒤에 다음을 추가하십시오.

EXECE '_'

그리고 각 문자 밑줄은 이중 밑줄이어야 한다: __

'%_G' EXECURE '_'처럼

Oracle 메타데이터 레지스트리

Oracle 제품 Oracle Enterprise Metadata Manager(EMM)는 ISO/IEC 11179 호환 메타데이터 레지스트리다.관리 메타데이터를 메타데이터 퍼블리싱에 사용할 수 있는 일관된 형식으로 저장한다.2006년 1월에는 오라클 컨설팅 서비스를 통해서만 EMM이 가능했다.

참고 항목

외부 링크