스키마 주석 생성 및 관리
스키마 주석은 테이블, 뷰, 열, 인덱스 및 데이터 사용 사례 도메인과 같은 데이터베이스 객체의 확장 또는 사용자 정의 속성을 포함하는 자유 형식 텍스트 필드입니다. 주석은 데이터베이스 스키마 객체에 대한 사용 속성을 중앙에서 등록하는 경량의 선언 기능입니다. 확장 및 사용자 정의 사용 속성을 등록하고 처리하기 위해 응용 프로그램에서 사용하기 위해 데이터베이스 메타 데이터에 대한 경량 표준 마크업으로 간주할 수 있습니다.
참고: 주석에 대한 추가적인 일반 정보는 Oracle AI Database Concepts를 참조하십시오.
주석 생성
주석은 스키마 객체의 속성이며 객체에 대한 CREATE 문에 지정할 수 있습니다.
-
다음 명령문은 테이블 자체 및 기본 열에 대한 주석이 포함된 새 테이블을 생성합니다.
CREATE TABLE employees ( id NUMBER(5) PRIMARY KEY ANNOTATIONS (Identity, Display 'Employee Name'), ename VARCHAR2(50) ANNOTATIONS(Display 'Employee Name'), salary NUMBER ANNOTATION(Display 'Employee Name', Confidential) ) ANNOTATIONS (Display 'Employee Table'); -
다음 명령문에는
hr스키마에dept_codes애플리케이션 사용 도메인을 생성하는 주석이 포함되어 있습니다.CREATE DOMAIN dept_codes AS NUMBER(3) CONSTRAINT dept_chk CHECK (dept_codes > 99 AND dept_codes != 200) ANNOTATIONS (Title 'Domain Annotation);
참조: 주석에 대한 DDL 문에 대한 자세한 내용은 Oracle AI Database Development Guide를 참조하십시오.
주석 나열
딕셔너리 뷰를 사용하여 특정 객체에 사용되는 주석 리스트를 가져올 수 있습니다.
다음 딕셔너리 뷰는 주석 및 주석 사용에 대해 정의됩니다.
-
ALL_ANNOTATION_VALUES, DBA_ANNOTATION_VALUES, USER_ANNOTATION_VALUES
-
ALL_ANNOTATIONS, DBA_ANNOTATIONS, USER_ANNOTATIONS
-
ALL_ANNOTATIONS_USAGE, DBA_ANNOTATIONS_USAGE, USER_ANNOTATIONS_USAGE
ALL_* 뷰에는 유저가 소유한 객체에 대한 모든 주석, 유저가 ALTER 권한을 가지고 있는 다른 유저가 소유한 객체에 대한 모든 주석, 유저가 해당 객체 유형에 대한 시스템 권한을 가진 객체에 대한 모든 주석이 포함됩니다. DBA_* 뷰에는 데이터베이스의 모든 객체에 대한 모든 annotation이 포함되어 있습니다. USER_* 뷰에는 사용자가 소유한 객체에 대한 모든 annotation이 포함되어 있습니다.
-
다음 명령문은
EMPLOYEE테이블에 대한 테이블 레벨 주석을 가져옵니다.SELECT * from USER_ANNOTATIONS_USAGE WHERE Object_Name = 'EMPLOYEE' AND Object_Type = 'TABLE' AND Column_Name IS NULL; -
다음 명령문은
EMPLOYEE테이블에 대한 열 레벨 주석을 가져옵니다.SELECT * from USER_ANNOTATIONS_USAGE WHERE Object_Name = 'EMPLOYEE' AND Object_Type = 'TABLE' AND Column_Name IS NOT NULL; -
다음 명령문은
EMPLOYEE테이블에 대한 열 레벨 주석을 열당 단일 JSON 컬렉션으로 가져옵니다.SELECT U.Column_Name, JSON_ARRAYAGG(JSON_OBJECT(U.Annotation_Name, U.Annotation_Value)) FROM USER_ANNOTATIONS_USAGE U WHERE Object_Name = 'EMPLOYEE' AND Object_Type = 'TABLE' AND Column_Name IS NOT NULL GROUP BY Column_Name;
참조: 주석에 대한 딕셔너리 뷰에 대한 자세한 내용은 Oracle AI Database Reference를 참조하십시오.
주석 수정
주석을 수정하려면 주석이 달린 스키마 객체에 대해 ALTER 문을 사용합니다.
-
다음 명령문은
employees테이블에HR값을 가진 추가 주석Department를 추가합니다.ALTER TABLE employees ANNOTATIONS (ADD Department 'HR'); -
다음 명령문은 주석
Title를 삭제하고 값이Domain인 새 주석Name을dept_code도메인에 추가합니다.ALTER DOMAIN dept_codes ANNOTATIONS(DROP Title, ADD Name 'Domain');
참조: 주석에 대한 DDL 문에 대한 자세한 내용은 Oracle AI Database Development Guide를 참조하십시오.