Acerca de la creación de conexiones y las funciones de cierre

Puede definir funciones PL/SQL para que Publisher las ejecute cuando se cree una conexión a un origen de datos JDBC (función de procesamiento anterior) o cuando se cierre (función de procesamiento posterior).

La función debe devolver un valor booleano. Esta función solo está soportada para bases de datos Oracle.

Estos dos campos permiten al administrador definir los atributos de contexto de un usuario antes de realizar una conexión a una base de datos y descartar los atributos después de que el motor de extracción interrumpa la conexión.

Se puede utilizar la variable del sistema :xdo_user_name como una variable de enlace para transferir el nombre de usuario de conexión a las llamadas de función PL/SQL. Al configurar el contexto de usuario de conexión de esta manera, podrá proteger los datos en el nivel de origen de datos (en lugar de en el nivel de consulta SQL).

Por ejemplo, suponiendo la siguiente función de ejemplo:

FUNCTION set_per_process_username (username_in IN VARCHAR2)
   RETURN BOOLEAN IS
     BEGIN
     SETUSERCONTEXT(username_in);
     return TRUE;
   END set_per_process_username

Para llamar a esta función cada vez que se realice una conexión a la base de datos, introduzca lo siguiente en el campo Función de procesamiento anterior: set_per_process_username(:xdo_user_name)

Otro uso de ejemplo puede ser la inserción de una fila en la tabla LOGTAB cada vez que se conecte o desconecte un usuario:

CREATE OR REPLACE FUNCTION BIP_LOG (user_name_in IN VARCHAR2, smode IN VARCHAR2) 
RETURN BOOLEAN AS
   BEGIN
   INSERT INTO LOGTAB VALUES(user_name_in, sysdate,smode);
   RETURN true;
   END BIP_LOG;

En el campo Función de procesamiento anterior, introduzca: BIP_LOG(:xdo_user_name)

Conforme se realiza una conexión nueva a la base de datos, se registra en la tabla LOGTAB. El valor SMODE especifica la actividad como una entrada o salida. Al llamar a esta función también como Función de procesamiento posterior, se devuelven resultados como los que se muestran en la tabla siguiente.