Este artículo presentará cómo usar la nueva función de anotación de la base de datos Oracle 23c para agregar información de descripción (metadatos) a los objetos de la base de datos.
concepto basico
La anotación ( Annotation ) puede entenderse simplemente como la función extendida de la anotación de la base de datos (Comentario). Los comentarios agregan información descriptiva a los objetos de la base de datos, como tablas y columnas. Las anotaciones amplían aún más esta funcionalidad al crear descripciones de pares de nombre y valor para los objetos de la base de datos. El nombre y el valor en la anotación son cadenas, y podemos personalizar información útil.
Actualmente, las anotaciones admiten los siguientes objetos de base de datos:
- tablas y campos
- Vistas y campos
- Vistas y campos materializados
- índice
- Campos de dominio y dominio de varias columnas
Usar anotaciones
Para los objetos que admiten anotaciones, las anotaciones generalmente se pueden definir usando el siguiente formato:
ANNOTATIONS ( {
ADD|DROP} annotation_name {
'annotation_value'} {
,} )
El siguiente es un ejemplo de cómo agregar anotaciones a una tabla. La palabra clave ADD se puede omitir al agregar anotaciones:
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');
en,
- La anotación Identidad indica que este campo es un campo de identidad. La anotación tiene solo un nombre y ningún valor;
- La anotación Mostrar proporciona un nombre para mostrar recomendado para la interfaz de la interfaz de usuario;
- El grupo de anotaciones puede clasificar la información mostrada.
Tenga en cuenta que estas anotaciones son nuestro contenido personalizado y no tienen ningún significado para las bases de datos u otras herramientas.
Podemos modificar las anotaciones de objetos agregando o eliminando operaciones. Por ejemplo:
alter table Employee annotations (Visibility 'Everyone');
alter table Employee annotations (drop Visibility);
alter table Employee annotations (add Visibility 'Everyone');
También se puede realizar una operación similar para las anotaciones a nivel de campo:
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'));
vista relacionada
Actualmente, las vistas relacionadas con las anotaciones incluyen: USER_ANNOTATIONS , USER_ANNOTATIONS_USAGE , USER_ANNOTATION_VALUES y la vista ALL y la vista DBA correspondientes.
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