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 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
ALGOL Y
Hacer bucle while
API de repositorio de contenido para Java
Datosflex