Om funktioner til at oprette og lukke forbindelser

Du kan definere PL/SQL-funktioner, som Publisher skal køre, når en forbindelse til en JDBC-datakilde oprettes (funktion til forudbehandling) eller lukkes (funktion til efterbehandling).

Funktionen skal returnere en boolesk værdi. Denne funktion understøttes kun for Oracle-databaser.

Med disse to felter kan administratoren angive en brugers kontekstattributter, før der oprettes forbindelse til en database, og derefter afslå attributterne, når forbindelsen afbrydes af udtræksprogrammet.

Systemvariablen :xdo_user_name kan bruges som tilknytningsvariabel, der videregiver logon-brugernavnet til PL/SQL-funktionsopkald. Hvis du angiver logon-brugerkonteksten på denne måde, kan du sikre data på datakildeniveau (i stedet for på SQL-forespørgselsniveau).

Lad os for eksempel antage, at du vil bruge følgende eksempelfunktion:

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 kalde denne funktion, hver gang der oprettes forbindelse til databasen, skal du indtaste følgende i feltet Funktion til forudbehandling: set_per_process_username(:xdo_user_name)

I et andet brugseksempel kan du indsætte en række i tabellen LOGTAB, hver gang en bruger opretter eller afbryder en forbindelse:

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 feltet Funktion til forudbehandling skal du indtaste: BIP_LOG(:xdo_user_name)

Når der oprettes en ny forbindelse til databasen, logges den i tabellen LOGTAB. Værdien SMODE angiver aktiviteten som en indgang eller udgang. Kald af denne funktion som en Funktion til efterbehandling returnerer også resultater som dem, der er vist i nedenstående tabel.