función de tabla RELATED_OBJECTS
La función de tabla RELATED_OBJECTS devuelve una lista de todos los objetos que dependen del archivo de base de datos especificado, ya sea directa o indirectamente.
La lista contiene todos los objetos que dependen directamente del archivo de base de datos de entrada. Cada vista identificada y variable global se procesa de forma recursiva para obtener sus dependientes hasta que no se encuentren más dependientes.
Si el archivo de entrada es un alias SQL, un archivo descrito por programa o no se encuentra el archivo, no se devuelve ninguna fila.
La información de dependencia se recopila de las tablas de referencias cruzadas de base de datos y del catálogo SQL. Es posible que algunas dependencias no se devuelvan en función de cómo se ha especificado el objeto dependiente en la sentencia original. Por ejemplo, si una sentencia CREATE FUNCTION hace referencia a una tabla no calificada, la dependencia no se completará en la vista de catálogo SQL (SYSROUTINEDEP) y esta función no devolverá posteriormente.
Autorización: Consulte la siguiente nota.
- nombre-biblioteca
- Expresión de serie gráfica o de caracteres que identifica la biblioteca que contiene nombre-archivo. Debe existir en el servidor actual.
- nombre-archivo
- Expresión de serie gráfica o de caracteres que identifica el archivo de base de datos para el que se van a listar los objetos relacionados. Debe ser el nombre del sistema del archivo.
El resultado de la función es una tabla que contiene filas con el formato que se muestra en la tabla siguiente. Todas las columnas admiten nulos.
| Nombre de columna | Tipo de datos | Descripción |
|---|---|---|
| NOMBRE_ESQUEMA_ORIGEN | VARCHAR(128) | El nombre del esquema que contiene SOURCE_SQL_NAME. |
| NOMBRE_SQL_ORIGEN | VARCHAR(128) | El nombre del objeto del que depende esta fila. |
| SQL_OBJECT_TYPE | VARCHAR(24) | El tipo SQL del objeto dependiente.
|
| SCHEMA_NAME | VARCHAR(128) | El esquema SQL que contiene SQL_NAME. |
| NOMBRE_SQL | VARCHAR(128) | El nombre SQL del objeto dependiente.
|
| LIBRARY_NAME | VARCHAR(10) | El nombre de biblioteca del sistema del objeto dependiente.
Contiene el valor nulo cuando SQL_OBJECT_TYPE es FOREIGN KEY, FUNCTION, PROCEDURE y TEXT INDEX. |
| SYSTEM_NAME | VARCHAR (279) | El nombre del sistema relacionado del objeto dependiente.
Contiene el valor nulo cuando SQL_OBJECT_TYPE es TEXT INDEX. |
| PROPIETARIO_OBJETO | VARCHAR(10) | El propietario del objeto. Cuando SQL_OBJECT_TYPE es FUNCTION, MASK, PERMISSION, PROCEDURE, TRIGGER o VARIABLE, este es el definidor del objeto. Contiene el valor nulo cuando SQL_OBJECT_TYPE es FOREIGN KEY o TEXT INDEX. |
| COMENTARIO_LARGO | VARGRAPHIC (2000) CCSID 1200 | El comentario largo de SQL para el objeto. Contiene el valor nulo cuando el comentario no está disponible. |
| TEXTO_OBJETO | VARGRAPHIC (50) CCSID 1200 | El texto descriptivo del sistema para el objeto. Contiene el valor nulo cuando el texto no está disponible. |
| ÚLTIMA _alterada | TIMESTAMP | Indicación de fecha y hora de la última modificación del objeto. Para los objetos que no se pueden modificar, es la indicación de fecha y hora de creación. Contiene el valor nulo cuando SQL_OBJECT_TYPE es FOREIGN KEY. |
Nota
Este procedimiento se proporciona en el esquema SYSTOOLS como ejemplo de cómo utilizar el catálogo SQL para buscar información de dependencia utilizando una función SQL. De forma similar a otras herramientas proporcionadas por Db2® for i en SYSTOOLS, el origen SQL se puede extraer y utilizar como modelo para crear funciones similares, o para crear una versión personalizada dentro de un esquema especificado por el usuario.
Los servicios proporcionados en SYSTOOLS tienen requisitos de autorización determinados por las interfaces utilizadas para implementar el servicio. Para comprender los requisitos de autorización, extraiga el SQL para el servicio y examine la implementación.
Ejemplos
- Lista todos los objetos que dependen del archivo ORDERS en APPLIB.
SELECT * FROM TABLE(SYSTOOLS.RELATED_OBJECTS( LIBRARY_NAME=>'APPLIB', FILE_NAME =>'ORDERS')); - Lista todos los objetos que dependen del archivo ORDERS en APPLIB. Para cada objeto, devuelva cuántos pasos recursivos se necesitaban para encontrar el objeto. Esta consulta devuelve las mismas filas que el ejemplo anterior, pero incluye una columna que contiene el nivel de recursión.
SELECT LEVEL, RO.* FROM (VALUES('APPLIB', 'ORDERS')) I(IN_LIB, IN_FILE), TABLE (QSYS2.OBJECT_STATISTICS(IN_LIB, '*FILE', IN_FILE)), TABLE(SYSTOOLS.RELATED_OBJECTS(IN_LIB, IN_FILE)) RO START WITH SOURCE_SCHEMA_NAME = OBJLONGSCHEMA AND SOURCE_SQL_NAME = OBJLONGNAME CONNECT BY SOURCE_SQL_NAME = PRIOR SQL_NAME AND SOURCE_SCHEMA_NAME = PRIOR SCHEMA_NAME ORDER BY 1, 2, 3;
