Registro especial CURRENT PATH

El registro especial CURRENT PATH (o CURRENT_PATH) especifica un valor VARCHAR(2048) que identifica la vía de acceso de SQL que se utiliza al resolver nombres de funciones no calificados, nombres de procedimientos, nombres de tipos de datos, nombres de variables global y nombres de objetos de módulo en sentencias de SQL preparadas dinámicamente. CURRENT FUNCTION PATH es sinónimo de CURRENT PATH.

El valor inicial es el valor predeterminado que se especifica en el párrafo siguiente. Para SQL estático, la opción de vinculación FUNCPATH proporciona una vía de acceso de SQL que se utiliza para la resolución de funciones y tipos de datos.

El registro especial CURRENT PATH contiene una lista de uno o varios nombres de esquema escritos entre comillas dobles y separados por comas. Por ejemplo, una vía de acceso de SQL que especifica que el gestor de bases de datos primero debe mirar en el esquema FERMAT, luego en el esquema XGRAPHIC y por último en el esquema SYSIBM se devuelve en el registro especial CURRENT PATH de la siguiente manera:
"FERMAT","XGRAPHIC","SYSIBM"

El valor predeterminado es SYSIBM,SYSFUN,SYSPROC,SYSIBMADM,SYSHADOOP,X, donde X es el valor del registro especial USER, delimitado por comillas dobles. El valor puede cambiarse invocando la sentencia SET CURRENT PATH. No es necesario especificar el esquema SYSIBM. Si no se incluye en la vía de acceso de SQL, se supone implícitamente que es el primer esquema. SYSIBM no toma ninguno de los 2048 bytes si se asume implícitamente.

Un tipo de datos que no está calificado con un nombre de esquema se calificará implícitamente con el primer esquema de la vía de acceso de SQL que contenga un tipo de datos con el mismo nombre no calificado. Existen excepciones a esta norma, como se indica en las descripciones de las sentencias siguientes: CREATE TYPE (Diferenciado), CREATE FUNCTION, COMMENT y DROP.

Ejemplo: Utilizando la vista de catálogos SYSCAT.ROUTINES, busque todas las rutinas definidas por el usuario que pueden invocarse sin calificar el nombre de rutina, ya que el registro especial CURRENT PATH contiene el nombre de esquema.
   SELECT ROUTINENAME, ROUTINESCHEMA FROM SYSCAT.ROUTINES
     WHERE POSITION (ROUTINESCHEMA, CURRENT PATH, CODEUNITS16) <> 0