Funkcie súvisiace s vytvorením a ukončením prepojenia

Pre program Publisher môžete definovať funkcie PL/SQL, ktoré sa spustia, keď sa pripojenie k dátovému zdroju JDBC vytvorí (funkcia Pre Process) alebo ukončí (funkcia Post Process).

Funkcia musí vracať boolovskú hodnotu. Táto funkcia je podporovaná len pre databázy Oracle.

Pred pripojením k databáze môže administrátor pomocou týchto dvoch polí nastaviť atribúty kontextu používateľa a po prerušení pripojenia mechanizmom extrakcie môže atribúty zrušiť.

Systémovú premennú :xdo_user_name je možné použiť ako väzobnú premennú na odovzdanie mena používateľa prihlásenia do volaní funkcií PL/SQL. Nastavením kontextu používateľa prihlásenia týmto spôsobom zabezpečíte dáta na úrovni dátového zdroja (nie na úrovni dopytu SQL).

Predpokladajme napríklad použitie nasledujúcej vzorovej funkcie:

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

Ak chcete volať túto funkciu vždy, keď sa vytvorí pripojenie k databáze, do poľa Funkcia Pre Process zadajte nasledujúci reťazec: set_per_process_username(:xdo_user_name)

Ďalší príklad použitia je vloženie riadka do tabuľky LOGTAB vždy, keď sa používateľ pripojí alebo odpojí:

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;

Do poľa Funkcia Pre Process zadajte reťazec: BIP_LOG(:xdo_user_name)

Keď sa vytvorí nové pripojenie k databáze, zaprotokoluje sa do tabuľky LOGTAB. Hodnota SMODE špecifikuje činnosť ako vstup alebo výstup. Volanie tejto funkcie ako Funkcie Post Process tiež vráti výsledky podobné tým, ktoré sú uvedené v tabuľke nižšie.