Articulo de referencia

metadatos de Oracle

Oracle Database proporciona información sobre todas las tablas , vistas , columnas y procedimientos de una base de datos. Esta información sobre la información se conoce como me...

Oracle Database proporciona información sobre todas las tablas , vistas , columnas y procedimientos de una base de datos. Esta información sobre la información se conoce como metadatos . [ 1 ] Se almacena en dos ubicaciones: tablas del diccionario de datos (a las que se accede mediante vistas integradas) y un registro de metadatos.

Otros sistemas de gestión de bases de datos relacionales admiten un equivalente estándar ANSI llamado esquema de información .

Vistas para metadatos

El número total de estas vistas depende de la versión de Oracle, pero ronda los 1000.

Las principales vistas integradas que acceden a las tablas del diccionario de datos de Oracle RDBMS son pocas y son las siguientes:

  • ALL_OBJECTS: lista de todos los objetos de la base de datos actual a los que puede acceder el usuario actual;
  • ALL_TABLES: lista de todas las tablas de la base de datos actual a las que puede acceder el usuario actual;
  • ALL_VIEWS: lista de todas las vistas de la base de datos actual a las que puede acceder el usuario actual;
  • ALL_TAB_COLUMNS: lista de todas las columnas de la base de datos a las que puede acceder el usuario actual;
  • ALL_ARGUMENTS: enumera los argumentos de las funciones y los procedimientos a los que puede acceder el usuario actual;
  • ALL_ERRORS: enumera las descripciones de los errores en todos los objetos almacenados (vistas, procedimientos, funciones, paquetes y cuerpos de paquetes) a los que tiene acceso el usuario actual;
  • ALL_OBJECT_SIZE: incluido para garantizar la compatibilidad con versiones anteriores de Oracle (versión 5);
  • ALL_PROCEDURES – (a partir de Oracle 9) enumera todas las funciones y procedimientos (junto con las propiedades asociadas) a los que puede acceder el usuario actual;
  • ALL_SOURCE: describe el código fuente (es decir, PL/SQL ) de los objetos almacenados accesibles para el usuario actual;
  • ALL_TRIGGERS: muestra todos los activadores accesibles para el usuario actual.

Además, existen vistas equivalentes con el prefijo "USER_", que muestran únicamente los objetos propiedad del usuario actual (es decir, una vista más restringida de los metadatos), y con el prefijo "DBA_", que muestran todos los objetos de la base de datos (es decir, una vista global sin restricciones de los metadatos de la instancia de la base de datos). Naturalmente, el acceso a las vistas de metadatos "DBA_" requiere privilegios específicos.

Ejemplo 1: búsqueda de tablas

Encuentra todas las tablas que tengan PATTERN en el nombre de la tabla.

SELECCIONAR Propietario COMO Nombre_del_esquema , Nombre_de_la_tabla DE Todas_las_tablas DONDE Nombre_de_la_tabla LIKE '%PATTERN%' ORDENAR POR Propietario , Nombre_de_la_tabla ;

Ejemplo 2: encontrar columnas

Encuentra todas las tablas que tengan al menos una columna que coincida con un PATRÓN específico en el nombre de la columna.

SELECCIONAR Propietario COMO Nombre_del_esquema , Nombre_de_la_tabla , Nombre_de_la_columna DE Todas_las_columnas_de_la_tabla DONDE Nombre_de_la_columna LIKE '%PATTERN%' ORDENAR POR 1 , 2 , 3 ;

Ejemplo 3: conteo de filas de columnas

Calcula el número total de filas en todas las tablas que contienen un nombre de columna que coincide con PATTERN (este es un script específico de SQL*Plus ).

COLUMNA DUMMY NOPRINT CALCULAR LA SUMA DE NUM_ROWS EN DUMMY SALTAR EN DUMMY SELECCIONAR NULL DUMMY , T.TABLE_NAME , C.COLUMN_NAME , T.NUM_ROWS DE TODAS LAS TABLAS T , TODAS LAS COLUMNAS DE TABLILLAS C DONDE T.TABLE_NAME = C.TABLE_NAME Y C.COLUMN_NAME LIKE ' % PATTERN % ' Y T.OWNER = C.OWNER ORDENAR POR T.TABLE_NAME ;

Tenga en cuenta que NUM_ROWS registra la cantidad de filas que había en una tabla cuando (y si) se analizó por última vez. Es muy probable que este valor difiera de la cantidad real de filas que contiene actualmente la tabla.

Ejemplo 4: búsqueda de columnas de vista

Ver columnas

SELECT TABLE_NAME , column_name , decode ( c.DATA_TYPE , ' VARCHAR2 ' , c.DATA_TYPE || ' ( ' || c.DATA_LENGTH || ' ) ' , ' NUMBER ' , DECODE ( c.data_precision , NULL , c.DATA_TYPE , 0 , c.DATA_TYPE , c.DATA_TYPE || ' ( ' || c.data_precision || DECODE ( c.data_scale , NULL , ' ) ' , 0 , ' ) ' , ' , ' || c.data_scale || ' ) ' ) ) , c.DATA_TYPE ) data_type FROM cols c , obj o WHERE c.TABLE_NAME = o.object_name AND o.object_type = ' VIEW ' AND c .table_name LIKE '%PATTERN%' ORDER BY c . table_name , c . column_id ;

Advertencia: Esto está incompleto con respecto a múltiples tipos de datos, incluidos char, varchar y timestamp, y utiliza vistas de diccionario extremadamente antiguas y obsoletas, que se remontan a Oracle 5.

Uso del guion bajo en los nombres de tablas y columnas.

El guion bajo es un patrón especial de SQL que coincide con un solo carácter y debe escaparse si, de hecho, se busca un carácter de guion bajo en la cláusula LIKE de una consulta.

Simplemente añade lo siguiente después de una instrucción LIKE:

ESCAPAR '_'

Y luego cada guion bajo literal debe ser un guion bajo doble: __

Ejemplo

COMO '%__G' ESCAPE '_'

Registro de metadatos de Oracle

El producto Oracle Enterprise Metadata Manager (EMM) de Oracle es un registro de metadatos compatible con ISO/IEC 11179. Almacena metadatos administrados en un formato consistente que puede utilizarse para la publicación de metadatos . En enero de 2006, EMM solo estaba disponible a través de los servicios de consultoría de Oracle.

Véase también

Referencias

  1. "Guía de implementación y operaciones del modelo de datos de comunicaciones" . docs.oracle.com . Consultado el 5 de julio de 2022 .
  • Artículo sobre metadatos de Oracle