Metadatos de Oracle

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

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. Se almacena en dos ubicaciones: tablas del diccionario de datos (a las que se accede a través de vistas integradas) y un registro de metadatos.

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

Vistas de metadatos

El número total de estas vistas depende de la versión de Oracle, pero está en un rango de 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 en la base de datos actual que son accesibles al usuario actual;
  • ALL_TABLES – lista de todas las tablas de la base de datos actual que son accesibles al usuario actual;
  • ALL_VIEWS – lista de todas las opiniones en la base de datos actual que son accesibles al usuario actual;
  • ALL_TAB_COLUMNS – lista de todas las columnas de la base de datos que son accesibles al usuario actual;
  • ALL_ARGUMENTS – enumera los argumentos de funciones y procedimientos que son accesibles al usuario actual;
  • ALL_ERRORS – enumera descripciones de errores en todos los objetos almacenados (vistas, procedimientos, funciones, paquetes y cuerpos de paquetes) que son accesibles al usuario actual;
  • ALL_OBJECT_SIZE – incluido para compatibilidad con Oracle versión 5;
  • ALL_PROCEDURES – (a partir de Oracle 9) enumera todas las funciones y procedimientos (junto con propiedades asociadas) que son accesibles al usuario actual;
  • ALL_SOURCE – describe la fuente de texto (p.e. PL/SQL) de los objetos almacenados accesibles al usuario actual;
  • ALL_TRIGGERS – lista todos los desencadenantes accesibles al usuario actual.

Además, existen vistas equivalentes con el prefijo "USER_" que muestran solo los objetos que pertenecen al usuario actual (es decir, una vista más restringida de metadatos) y el prefijo "DBA_" que muestran todos los objetos en la base de datos (es decir, una vista global sin restricciones de los metadatos para la instancia de la base de datos). Naturalmente, el acceso a "DBA_" Las vistas de metadatos requieren privilegios específicos.

Ejemplo 1: encontrar tablas

Buscar todas las tablas que tengan PATRÓN en el nombre de la tabla

 SELECT Propietario ASÍ Schema_Name, Table_Name DESDE All_Tables Donde Table_Name # '%pático' ORDER BY Propietario, Table_Name;

Ejemplo 2: encontrar columnas

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

 SELECT Propietario ASÍ Schema_Name, Table_Name, Columna Nombre DESDE All_Tab_Columns Donde Columna Nombre # '%pático' ORDER BY 1,2,3;

Ejemplo 3: contar filas de columnas

Estime 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)

 COLUMN DUMMY NOPRINT COMPUTE SUM OF NUM_ROWS ON DUMMY BREAK ON DUMMY SELECT NULL DUMMY, T.TABLE_NAME, C.COLUMN_NAME, T.NUM_ROWS DESDE ALL_TABLES T, ALL_TAB_COLUMNS C Donde T.TABLE_NAME = C.TABLE_NAME Y C.COLUMN_NAME # '%pático' Y T.OWNER = C.OWNER ORDER BY T.TABLE_NAME;

Tenga en cuenta que NUM_ROWS registra el número de filas que había en una tabla cuando (y si) se analizó por última vez. Lo más probable es que esto se desvíe del número real de filas que hay actualmente en la tabla.

Ejemplo 4: encontrar columnas de vista

Buscar columnas de vista

SELECT TABLE_NAME, column_name, decodificación()c.DATA_TYPE, VARCHAR2 ', c.DATA_TYPE Silencio '( Silencio c.DATA_LENGTH Silencio ') ', 'NUMBER ', DECODE()c.data_precision,  NULL,  c.DATA_TYPE,  0,  c.DATA_TYPE,  c.DATA_TYPE Silencio '( Silencio c.data_precision Silencio DECODE()c.data_scale,  NULL,  ') ',  0,  ') ' ,  ', ' Silencio c.data_scale Silencio ') ')), c.DATA_TYPE) data_type DESDE cols c, obj o Donde c.TABLE_NAME = o.object_name Y o.objeto_tipo = EXAMEN '  Y c.table_name # '%pático' ORDER BY c.table_name, c.column_id;

Advertencia: Esto es incompleto con respecto a múltiples tipos de datos incluyendo char, varchar y timetamp y utiliza vistas de diccionario extremadamente viejas y deprecatadas, de regreso al oráculo 5.

Uso de guión bajo en nombres de tablas y columnas

El guión bajo es una coincidencia de patrón SQL especial con un solo carácter y se debe utilizar como carácter de escape si de hecho está buscando un carácter de guión bajo en la cláusula LIKE de una consulta.

Simplemente agregue lo siguiente después de una declaración LIKE:

 ESCAPE '_

Y luego cada guión bajo literal debe ser un guión bajo doble: __

Ejemplo

 Como '%_G' ESCAPE '_

Registro de metadatos de Oracle

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

Contenido relacionado

Tabla de métodos virtuales

En programación informática, una tabla de métodos virtuales una tabla de funciones virtuales, una tabla de llamadas virtuales , tabla de despacho, vtable o...

ALGOL Y

ALGOL Y fue el nombre dado a un sucesor especulado del lenguaje de programación ALGOL 60 que incorporaba algunas características radicales que fueron...

Hacer bucle while

En muchos lenguajes de programación de computadoras, un bucle do while es una declaración de flujo de control que ejecuta un bloque de código y luego...

API de repositorio de contenido para Java

API de repositorio de contenido para Java es una especificación para una interfaz de programación de aplicaciones de la plataforma Java para acceder a...

Datosflex

DataFlex es un lenguaje de programación de alto nivel orientado a objetos y una herramienta visual de cuarta generación para desarrollar aplicaciones de...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save