可以定义在创建(预处理函数)或关闭(后处理函数)与 JDBC 数据源的连接时 Publisher 要运行的 PL/SQL 函数。
此函数必须返回布尔值。此功能仅受 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 值将活动指定为进入或退出。将此函数作为后处理函数调用也将返回下表中显示的结果。