Cómo resuelve Db2 los nombres no calificados
Un plan o paquete puede contener sentencias SQL que utilicen nombres de tablas y vistas no cualificados.
Para SQL estático, el calificador predeterminado para esos nombres es el propietario del plan o paquete. Sin embargo, puede utilizar la opción QUALIFIER del comando BIND para especificar un calificador diferente. Para las sentencias estáticas, la opción de enlace PATH determina la ruta que busca Db2 para resolver tipos distintos no cualificados, funciones definidas por el usuario, procedimientos almacenados, secuencias y nombres de disparadores.
Cuando realice operaciones de enlace en paquetes o planes que contengan SQL estático, debe utilizar la autoridad de grupo y ROL en lugar de la autoridad de ID individual siempre que sea posible. Las combinaciones de propiedad de PROPIETARIO, CALIFICADOR, ESQUEMA y ROL le proporcionan más flexibilidad.
Para planes o paquetes que contienen SQL dinámico, el comportamiento de DYNAMICRULES determina cómo Db2 califica los nombres de objetos no calificados. Para tipos distintos no cualificados, funciones definidas por el usuario, procedimientos almacenados, secuencias y nombres de desencadenadores en sentencias SQL dinámicas, Db2 utiliza el nombre del esquema como cualificador. Db2 encuentra el nombre del esquema en el registro especial CURRENT PATH. Para tablas, vistas, alias e índices no cualificados, Db2 utiliza el registro especial CURRENT SCHEMA como cualificador.
Excepción: las declaraciones ALTER, CREATE, DROP, COMMENT ON, GRANT y REVOKE siguen convenciones diferentes para asignar calificadores. Para SQL estático, debe especificar el calificador para estas sentencias en la opción de enlace CALIFICADOR. Para SQL dinámico, el calificador para estas sentencias es el valor en el registro especial CURRENT SCHEMA.