Pro aplikaci Publisher můžete definovat funkce PL/SQL, které se spustí při vytvoření připojení k datovému zdroji JDBC (funkce před procesem) nebo po jeho uzavření (funkce po procesu).
Funkce musí vracet logickou hodnotu. Tato funkce je podporována pouze u databází Oracle.
Tato dvě pole správci umožňují nastavit atributy kontextu uživatele před navázáním připojení k databázi a poté tyto atributy zrušit po přerušení připojení modulem extrakce.
Proměnnou systému :xdo_user_name lze použít jako vázanou proměnnou k předání přihlašovacího uživatelského jména do volání funkce PL/SQL. Nastavení kontextu přihlášení uživatele tímto způsobem umožňuje zabezpečit data na úrovni datového zdroje (a nikoliv na úrovni dotazu SQL).
Předpokládejme například následující ukázkovou funkci:
FUNCTION set_per_process_username (username_in IN VARCHAR2) RETURN BOOLEAN IS BEGIN SETUSERCONTEXT(username_in); return TRUE; END set_per_process_username
Chcete-li funkci volat při každém navázání připojení k databázi, zadejte do pole Funkce před procesem následující řetězec: set_per_process_username(:xdo_user_name)
Mezi další příklady použití může patřit vložení řádku do tabulky LOGTAB při každém připojení nebo odpojení uživatele:
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;
V poli Funkce před procesem zadejte: BIP_LOG(:xdo_user_name)
Nové připojení k databázi se při navázání zaprotokoluje do tabulky LOGTAB. Hodnota SMODE určuje aktivitu jako vstup nebo konec. Volání této funkce jako funkce po procesu rovněž vrátí výsledky, jako jsou výsledky uvedené v tabulce níže.