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.

Leer diagrama de sintaxisOmitir diagrama de sintaxis visual RELATED_OBJECTS ( LIBRARY_NAME =>  nombre-biblioteca , file_name =>  nombre-archivo )
El esquema es SYSTOOLS.
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.

Tabla 1. Función de tabla RELATED_OBJECTS
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.
ALIAS
Un alias SQL definido para SOURCE_SQL_NAME
FOREIGN KEY
La tabla hijo en una restricción referencial con SOURCE_SQL_NAME
FUNCIÓN
Una función que hace referencia a SOURCE_SQL_NAME
Tabla histórica
Una tabla de historial asociada a la tabla temporal definida por SOURCE_SQL_NAME
ÍNDICE
Un índice SQL definido en SOURCE_SQL_NAME
KEYED LOGICAL FILE
Un archivo lógico por clave nativo definido en SOURCE_SQL_NAME
LOGICAL FILE
Un archivo lógico nativo definido en SOURCE_SQL_NAME
MÁSCARA
Una máscara de columna en una columna de SOURCE_SQL_NAME o que hace referencia a SOURCE_SQL_NAME en su definición
MATERIALIZED QUERY TABLE
Una tabla de consulta materializada que hace referencia a SOURCE_SQL_NAME
Permiso
Un permiso de fila definido en SOURCE_SQL_NAME o que hace referencia a SOURCE_SQL_NAME en su definición
PROCEDIMIENTO
Un procedimiento que hace referencia a SOURCE_SQL_NAME
Índice de texto
Un índice de texto OmniFind creado a partir de SOURCE_SQL_NAME
TRIGGER
Un desencadenante SQL definido en SOURCE_SQL_NAME o que hace referencia a SOURCE_SQL_NAME en su definición
Variable
Una variable global que hace referencia a SOURCE_SQL_NAME en su expresión predeterminada
VIEW
Una vista que hace referencia a SOURCE_SQL_NAME en su definición
Esquema XML
Un esquema XML que utiliza SOURCE_SQL_NAME
SCHEMA_NAME VARCHAR(128) El esquema SQL que contiene SQL_NAME.
NOMBRE_SQL VARCHAR(128) El nombre SQL del objeto dependiente.
  • Cuando SQL_OBJECT_TYPE es FOREIGN KEY, este es el nombre de la tabla hijo
LIBRARY_NAME VARCHAR(10) El nombre de biblioteca del sistema del objeto dependiente.
  • Cuando SQL_OBJECT_TYPE es TRIGGER, la biblioteca que contiene el programa desencadenante

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.
  • Cuando SQL_OBJECT_TYPE es FOREIGN KEY, el nombre de restricción
  • Cuando SQL_OBJECT_TYPE es FUNCTION o PROCEDURE, el nombre externo
  • Cuando SQL_OBJECT_TYPE es MASK o PERMISSION, la máscara o el nombre de permiso
  • Cuando SQL_OBJECT_TYPE es TRIGGER, el nombre del programa desencadenante

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;