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.