Creación y Gestión de Anotaciones de Esquema
Las anotaciones de esquema son campos de texto de formato libre que contienen propiedades ampliadas o personalizadas de objetos de base de datos como tablas, vistas, columnas, índices y dominios de casos de uso de datos. Las anotaciones son una utilidad declarativa ligera para registrar de forma centralizada las propiedades de uso de los objetos de esquema de base de datos. Se pueden considerar como marcas estandarizadas ligeras para metadatos de base de datos, para que las aplicaciones las utilicen para registrar y procesar propiedades de uso ampliadas y personalizadas.
Consulte también: Conceptos de Oracle AI Database para obtener información general adicional sobre las anotaciones
Creación de Anotaciones
Las anotaciones son propiedades de los objetos de esquema y se pueden especificar en la sentencia CREATE para el objeto.
-
La siguiente sentencia crea una nueva tabla con anotaciones para la propia tabla y las columnas subyacentes.
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'); -
La siguiente sentencia incluye una anotación en la creación del dominio de uso de la aplicación
dept_codesen el esquemahr.CREATE DOMAIN dept_codes AS NUMBER(3) CONSTRAINT dept_chk CHECK (dept_codes > 99 AND dept_codes != 200) ANNOTATIONS (Title 'Domain Annotation);
Consulte también: Oracle AI Database Development Guide para obtener información sobre las sentencias DDL para anotaciones
Listado de anotaciones
Puede utilizar vistas de diccionario para obtener la lista de anotaciones que se utilizan para objetos específicos.
Las siguientes vistas de diccionario se definen para las anotaciones y el uso de anotaciones.
-
TODOS LOS VALORES DE ANOTACIÓN, VALORES DE ANOTACIÓN DE DBA, VALORES DE ANOTACIÓN DE USUARIO
-
TODAS LAS ANOTACIONES, DBA_ANNOTATIONS, ANOTACIONES DE USUARIO
-
TODOS_ANNOTATIONS_USAGE, DBA_ANNOTATIONS_USAGE, USER_ANNOTATIONS_USAGE
Las vistas ALL_* incluyen todas las anotaciones de objetos propiedad del usuario, todas las anotaciones de objetos propiedad de otros usuarios en los que el usuario tiene el privilegio ALTER y todas las anotaciones de objetos en los que el usuario tiene privilegios del sistema para ese tipo de objeto. Las vistas DBA_* incluyen todas las anotaciones para todos los objetos de la base de datos. Las vistas USER_* incluyen todas las anotaciones para los objetos propiedad del usuario.
-
La siguiente sentencia obtiene las anotaciones de nivel de tabla para la tabla
EMPLOYEE:SELECT * from USER_ANNOTATIONS_USAGE WHERE Object_Name = 'EMPLOYEE' AND Object_Type = 'TABLE' AND Column_Name IS NULL; -
La siguiente sentencia obtiene las anotaciones de nivel de columna para la tabla
EMPLOYEE:SELECT * from USER_ANNOTATIONS_USAGE WHERE Object_Name = 'EMPLOYEE' AND Object_Type = 'TABLE' AND Column_Name IS NOT NULL; -
La siguiente sentencia obtiene las anotaciones de nivel de columna para la tabla
EMPLOYEEcomo una única recopilación de JSON por columna: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;
Consulte también: Referencia de Oracle AI Database para obtener información sobre las vistas del diccionario para las anotaciones.
Modificación de anotaciones
Para modificar una anotación, utilice la sentencia ALTER para el objeto de esquema anotado.
-
La siguiente sentencia agrega una anotación adicional
Departmentcon el valorHRa la tablaemployees.ALTER TABLE employees ANNOTATIONS (ADD Department 'HR'); -
La siguiente sentencia borra la anotación
Titley agrega una nueva anotaciónNamecon el valorDomainal dominiodept_code.ALTER DOMAIN dept_codes ANNOTATIONS(DROP Title, ADD Name 'Domain');
Consulte también: Oracle AI Database Development Guide para obtener información sobre las sentencias DDL para anotaciones