Criando e Gerenciando Anotações de Esquema
As anotações de esquema são campos de texto de formato livre que contêm propriedades estendidas ou personalizadas de objetos de banco de dados, como tabelas, views, colunas, índices e domínios de caso de uso de dados. Anotações são um recurso declarativo leve para registrar centralmente propriedades de uso para objetos de esquema de banco de dados. Eles podem ser considerados como marcação padronizada leve para metadados de banco de dados, para uso por aplicativos para registrar e processar propriedades de uso estendidas e personalizadas.
Consulte Também: Oracle AI Database Concepts para obter informações gerais adicionais sobre anotações
Criando Anotações
As anotações são propriedades de objetos de esquema e podem ser especificadas na instrução CREATE do objeto.
-
A instrução a seguir cria uma nova tabela com anotações para a própria tabela e as colunas subjacentes.
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'); -
A instrução a seguir inclui uma anotação na criação do domínio de uso do aplicativo
dept_codesno esquemahr.CREATE DOMAIN dept_codes AS NUMBER(3) CONSTRAINT dept_chk CHECK (dept_codes > 99 AND dept_codes != 200) ANNOTATIONS (Title 'Domain Annotation);
Consulte Também: Guia de Desenvolvimento do Oracle AI Database para obter informações sobre instruções DDL para anotações
Listando Anotações
Você pode usar views de dicionário para obter a lista de anotações usadas para objetos específicos.
As seguintes views de dicionário são definidas para anotações e uso de anotações.
-
ALL_ANNOTATION_VALUES, DBA_ANNOTATION_VALUES, USER_ANNOTATION_VALUES
-
ALL_ANNOTATIONS, DBA_ANNOTATIONS, USER_ANNOTATIONS
-
ALL_ANNOTATIONS_USAGE, DBA_ANNOTATIONS_USAGE, USER_ANNOTATIONS_USAGE
As views ALL_* incluem todas as anotações para objetos pertencentes ao usuário, todas as anotações para objetos pertencentes a outros usuários nos quais o usuário tem o privilégio ALTER e todas as anotações para objetos nos quais o usuário tem privilégios de sistema para esse tipo de objeto. As views DBA_* incluem todas as anotações de todos os objetos no banco de dados. As exibições USER_* incluem todas as anotações de objetos pertencentes ao usuário.
-
A instrução a seguir obtém as anotações no nível da tabela para a tabela
EMPLOYEE:SELECT * from USER_ANNOTATIONS_USAGE WHERE Object_Name = 'EMPLOYEE' AND Object_Type = 'TABLE' AND Column_Name IS NULL; -
A instrução a seguir obtém as anotações no nível da coluna para a tabela
EMPLOYEE:SELECT * from USER_ANNOTATIONS_USAGE WHERE Object_Name = 'EMPLOYEE' AND Object_Type = 'TABLE' AND Column_Name IS NOT NULL; -
A instrução a seguir obtém as anotações no nível da coluna para a tabela
EMPLOYEEcomo uma única coleção JSON por coluna: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 Também: Oracle AI Database Reference para obter informações sobre as views de dicionário para anotações.
Modificar anotações
Para modificar uma anotação, use a instrução ALTER para o objeto de esquema anotado.
-
A instrução a seguir adiciona uma anotação adicional
Departmentcom o valorHRà tabelaemployees.ALTER TABLE employees ANNOTATIONS (ADD Department 'HR'); -
A instrução a seguir elimina a anotação
Titlee adiciona uma nova anotaçãoNamecom o valorDomainao domíniodept_code.ALTER DOMAIN dept_codes ANNOTATIONS(DROP Title, ADD Name 'Domain');
Consulte Também: Guia de Desenvolvimento do Oracle AI Database para obter informações sobre instruções DDL para anotações