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.