O funkcích vytváření a uzavření připojení

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.