Om funksjoner for opprettelse og lukking av tilkoblinger

Du kan definere PL-/SQL-funksjoner for Publisher som skal kjøres når en tilkobling til en JDBC-datakilde opprettes (forbehandlingsfunksjon) eller lukkes (etterbehandlingsfunksjon).

Funksjonen må returnere en boolsk verdi. Denne funksjonen støttes bare for Oracle-databaser.

Disse to feltene gjør at administratoren kan angi kontekstattributtene for en bruker før en tilkobling til en database opprettes, og deretter forkaste attributtene når tilkoblingen blir brutt av uttrekkingsmotoren.

Systemvariabelen :xdo_user_name kan brukes som en bindingsvariabel for sending av brukernavnet for pålogging til PL-/SQL-funksjonskall. Når brukerkonteksten for pålogging angis på denne måten, kan du sikre data på datakildenivå (i stedet for på SQL-spørringsnivå).

Anta for eksempel at du har definert følgende eksempelfunksjon:

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

Hvis du vil kalle denne funksjonen hver gang en tilkobling til databasen opprettes, angir du følgende i feltet Forbehandlingsfunksjon: set_per_process_username(:xdo_user_name)

Et annet eksempel på bruk kan være å sette inn en rad i tabellen LOGTAB hver gang en bruker kobler til eller fra:

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;

Angi følgende i feltet Forbehandlingsfunksjon: BIP_LOG(:xdo_user_name)

Det opprettes en ny tilkobling til databasen, som logges i tabellen LOGTAB. Verdien for SMODE angir aktiviteten som en inngang eller utgang. Når du kaller denne funksjonen som en etterbehandlingsfunksjon, returneres også resultater som vist i tabellen nedenfor.