A kapcsolatlétrehozási és -lezárási funkciók ismertetése

Definiálhatja a PL/SQL függvényeit, hogy a Publisher futtassa azokat, ha JDBC-adatforráshoz való kapcsolatot hoz létre (előfeldolgozási függvény) vagy zár le (utófeldolgozási függvény).

A függvénynek egy logikai értéket kell visszaadnia. Ez a funkció csak Oracle-adatbázisok esetében támogatott.

Ebben a két mezőben a rendszergazda beállíthatja egy felhasználó környezeti attribútumait, mielőtt létrehozna egy kapcsolatot egy adatbázishoz, majd elvetheti az attribútumokat, miután a kivonatolásvezérlő megszakította a kapcsolatot.

Az :xdo_user_name rendszerváltozó használható hozzárendelt változóként a bejelentkezési felhasználónév továbbításához a PL/SQL függvények meghívásához. A bejelentkezési felhasználói környezet ily módon történő beállítása lehetővé teszi az adatok adatforrásszinten történő védelmét (az SQL-lekérdezési szinten történő védelem helyett).

Például, tételezzük fel a következő mintafüggvényt:

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

Ha szeretné ezt a függvényt meghívni, valahányszor létrejön egy adatbázishoz való kapcsolódás, az Előfeldolgozási függvény mezőben adja meg a következőt: set_per_process_username(:xdo_user_name)

Egy másik példa a használatra: sor beszúrása a LOGTAB táblába, valahányszor egy felhasználó csatlakozik vagy lecsatlakozik:

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;

Az Előfeldolgozási függvény mezőbe írja be: BIP_LOG(:xdo_user_name)

Mivel egy új adatbázis-kapcsolat jött létre, az bekerül a LOGTAB naplózási táblába. Az SMODE értéke a tevékenységet belépésként vagy kilépésként adja meg. Ha ezt a függvényt is Előfeldolgozási függvényként hívja meg, ugyanazokat az eredményeket adja vissza, mint amik az alábbi táblázatban láthatók.