Oracle Database 23c新特性之注解

Posted 不剪发的Tony老师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle Database 23c新特性之注解相关的知识,希望对你有一定的参考价值。

本文将会介绍如何使用 Oracle database 23c 新增的注解功能为数据库对象增加描述信息(元数据)。

基本概念

注解(Annotation)可以简单理解为数据库注释(Comment)的扩展功能。注释可以为数据库对象(例如表和列)增加描述信息。注解则进一步扩展了这个功能,可以为数据库对象创建名称-值对的描述。注解中的名称和值都是字符串,我们可以自定义有用的信息。

目前注解支持以下数据库对象:

  • 表和字段
  • 视图和字段
  • 物化视图和字段
  • 索引
  • 域和多列域字段

使用注解

对于支持注解的对象,通常可以使用以下格式定义注解:

ANNOTATIONS ( ADD|DROP annotation_name 'annotation_value' , )

以下是一个为表增加注解的示例,增加注解时的 ADD 关键字可以省略:

CREATE TABLE Employee (
  Id  NUMBER(5) ANNOTATIONS(Identity, Display 'Employee ID', Group 'Emp_Info'),
  Ename VARCHAR2(50) ANNOTATIONS(Display 'Employee Name',  Group 'Emp_Info'),
  Sal NUMBER ANNOTATIONS(Display 'Employee Salary', UI_Hidden)
) ANNOTATIONS (Display 'Employee Table');

其中,

  • 注解 Identity 表明该字段是一个标识字段。该注解只有名字没有值;
  • 注解 Display 为 UI 界面提供了推荐的显示名;
  • 注解 Group 可以将显示信息进行分类。

注意,这些注解都是我们自定义的内容,对于数据库或者其他工具而言并没有任何意义。

我们可以通过添加或者删除操作修改对象注解。例如:

alter table Employee annotations (Visibility 'Everyone');

alter table Employee annotations (drop Visibility);

alter table Employee annotations (add Visibility 'Everyone');

对于字段级别的注解,也可以执行类似的操作:

alter table Employee modify (Id annotations (Visibility 'Hidden'));

alter table Employee modify (Id annotations (drop Visibility));

alter table Employee modify (Id annotations (add Visibility 'Hidden'));

相关视图

目前,与注解相关的视图包括:USER_ANNOTATIONSUSER_ANNOTATIONS_USAGEUSER_ANNOTATION_VALUES 以及对应的 ALL 视图和 DBA 视图。

select object_name,
       object_type,
       column_name,
       domain_name,
       domain_owner,
       annotation_name,
       annotation_value
from   user_annotations_usage
order by annotation_name, annotation_value;

OBJECT_NAME  OBJECT_TYPE  COLUMN_NAME  DOMAIN_NAME  DOMAIN_OWNER ANNOTATION_NAM ANNOTATION_VALUE
------------ ------------ ------------ ------------ ------------ -------------- --------------------
EMPLOYEE     TABLE        ID                                     DISPLAY        Employee ID
EMPLOYEE     TABLE        ENAME                                  DISPLAY        Employee Name
EMPLOYEE     TABLE        SAL                                    DISPLAY        Employee Salary
EMPLOYEE     TABLE                                               DISPLAY        Employee Table
EMPLOYEE     TABLE        ID                                     IDENTITY
EMPLOYEE     TABLE        ID                                     GROUP          Emp_Info
EMPLOYEE     TABLE        ENAME                                  GROUP          Emp_Info
EMPLOYEE     TABLE        SAL                                    UI_Hidden
EMPLOYEE     TABLE                                               VISIBILITY     Everyone
EMPLOYEE     TABLE        ID                                     VISIBILITY     Hidden

Oracle Database Gateways 下载

以11g 为例

1 先到oracle 下载页,找到11g

https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

 

2 找到对应操作系统版本 ,这里使用的是 windows 64,点击 SEE ALL

 

3 找到 gateways 点击下载,应该是需要登录 oracle 账号的

 

以上是关于Oracle Database 23c新特性之注解的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 23c数据库的10个特性介绍

Oracle 23c数据库的10个特性介绍

Oracle 12c 新特性之 数据库内归档(In-Database Archiving)

Oracle Database 19c 新特性之 ANY_VALUE 聚合函数

Oracle Database 19c 新特性之 ANY_VALUE 聚合函数

Oracle Database 12.2新特性详解