Om "Skapa anslutning" och "Stängningsfunktioner"

Du kan definiera PL/SQL-funktioner som Publisher ska köra när en anslutning till en JDBC-datakälla skapas (förbearbetningsfunktion) eller stängs (efterbearbetningsfunktion).

Funktionen måste returnera ett booleskt värde. Funktionen stöds bara för Oracle-databaser.

Med de här två fälten kan administratören ställa in en användares kontextattribut innan en anslutning till en databas upprättas och sedan avvisa attributen när anslutningen bryts av extraheringsmotorn.

Systemvariabeln :xdo_user_name kan användas som en bindvariabel för att överföra inloggningsanvändarnamn för PL/SQL-funktionsanropen. Om du anger användarkontexten för inloggning på det här sättet kan du skydda data på datakällsnivå (i stället för på SQL-frågenivå).

Säg att vi har den här exempelfunktionen:

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

Om funktionen ska anropas varje gång en anslutning görs till databasen anger du följande i fältet Förbearbetningsfunktion: set_per_process_username(:xdo_user_name)

Ett annat exempel på användning kan vara att infoga en rad i tabellen LOGTAB varje gång en användare ansluter eller kopplar ned:

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;

I fältet Förbearbetningsfunktion anger du: BIP_LOG(:xdo_user_name)

När en ny anslutning görs till databasen loggas det i tabellen LOGTAB. Värdet SMODE anger aktiviteten som en ingång eller en utgång. Om du även anropar funktionen som en Efterbearbetningsfunktion returneras resultat som de som visas i tabellen nedan.