创建和管理方案注释
方案注释是自由形式的文本字段,其中包含数据库对象的扩展或定制属性,例如表、视图、列、索引和数据用例域。注释是用于集中注册数据库方案对象的用法属性的轻量级声明工具。它们可以被认为是数据库元数据的轻量级标准化标记,供应用程序用来注册和处理扩展和定制使用属性。
另请参阅: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);
另请参阅: Oracle AI Database Development Guide(了解有关 DDL 语句的注释信息)
列出注释
可以使用字典视图获取用于特定对象的注释列表。
以下字典视图是为批注和批注用途定义的。
-
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_* 视图包括数据库中所有对象的所有注释。USER_* 视图包括用户所拥有对象的所有注释。
-
以下语句获取
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');
另请参阅: Oracle AI Database Development Guide(了解有关 DDL 语句的注释信息)