คุณสามารถกำหนดฟังก์ชัน PL/SQL สำหรับ Publisher ที่จะรันเมื่อมีการสร้าง (ฟังก์ชันประมวลผลก่อนหน้า) หรือปิด (ฟังก์ชันประมวลผลภายหลัง) การเชื่อมต่อกับที่มาข้อมูล JDBC
ฟังก์ชันจะต้องแสดงค่าบูลีนเท่านั้น ระบบรองรับคุณสมบัตินี้สำหรับฐานข้อมูล Oracle เท่านั้น
ผู้ดูแลระบบสามารถใช้สองฟิลด์นี้เพื่อตั้งค่าแอททริบิวคอนเท็กซ์ของผู้ใช้ได้ก่อนที่จะมีการเชื่อมต่อกับฐานข้อมูล และเพื่อยกเลิกแอททริบิวหลังจากที่มีการตัดการเชื่อมต่อโดยเอ็นจินการดึงข้อมูล
ตัวแปรของระบบ :xdo_user_name สามารถใช้เป็นตัวแปรไบน์เพื่อป้อนชื่อผู้ใช้ที่ล็อกอินให้กับการเรียกฟังก์ชัน PL/SQL การตั้งค่าคอนเท็กซ์ของผู้ใช้ที่ล็อกอินด้วยวิธีนี้จะช่วยให้คุณสามารถรักษาความปลอดภัยของข้อมูลที่ระดับที่มาข้อมูลได้ (นอกเหนือจากที่ระดับการสืบค้น SQL)
ตัวอย่างเช่น สมมติว่าคุณได้กำหนดฟังก์ชันตัวอย่างต่อไปนี้
FUNCTION set_per_process_username (username_in IN VARCHAR2) RETURN BOOLEAN IS BEGIN SETUSERCONTEXT(username_in); return TRUE; END set_per_process_username
ในการเรียกใช้ฟังก์ชันนี้ทุกครั้งที่มีการเชื่อมต่อกับฐานข้อมูล ให้ป้อนตัวแปรต่อไปนี้ในฟิลด์ ฟังก์ชันประมวลผลก่อนหน้า: set_per_process_username(:xdo_user_name)
ตัวอย่างวิธีใช้อื่นๆ อาจได้แก่ การแทรกแถวในตาราง LOGTAB ทุกครั้งที่ผู้ใช้เชื่อมต่อหรือตัดการเชื่อมต่อ ดังนี้
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;
ในฟิลด์ ฟังก์ชันประมวลผลก่อนหน้า ให้ป้อน: BIP_LOG(:xdo_user_name)
เมื่อมีการเชื่อมต่อใหม่กับฐานข้อมูล ก็จะล็อกอินเข้าสู่ตาราง LOGTAB ค่า SMODE จะระบุกิจกรรมเป็นการเริ่มการทำงานหรือออกจากการทำงาน การเรียกใช้ฟังก์ชันนี้ในฐานะ ฟังก์ชันประมวลผลภายหลัง จะแสดงผลลัพธ์เช่นเดียวกับที่แสดงในตารางนี้