Você pode definir as funções PL/SQL a serem executadas pelo Publisher quando uma conexão com uma origem de dados JDBC é criada (função de pré-processamento) ou fechada (função de pós-processamento).
A função deve retornar um valor Booliano. Esta funcionalidade é suportada apenas para bancos de dados Oracle.
Esses dois campos permitem que o administrador defina atributos de contexto de um usuário antes de uma conexão ser feita a um banco de dados e, em seguida, ignora os atributos após a conexão ser interrompida por um mecanismo de extração.
A variável do sistema :xdo_user_name pode ser usada como uma variável de bind para informar o nome de usuário de log-in às chamadas de função PL/SQL. A definição de contexto do usuário de log-in desta forma permite que você proteja os dados em nível de origem de dados (em vez de em nível de consulta SQL).
Por exemplo, supondo a seguinte função de amostra:
FUNCTION set_per_process_username (username_in IN VARCHAR2) RETURN BOOLEAN IS BEGIN SETUSERCONTEXT(username_in); return TRUE; END set_per_process_username
Para chamar esta função cada vez que uma conexão for feita ao banco de dados, insira o seguinte no campo Função de Pré-Processamento: set_per_process_username(:xdo_user_name)
Outro uso de amostra pode ser inserir uma linha na tabela LOGTAB cada vez que um usuário for conectado ou desconectado:
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;
No campo Função de Pré-Processamento digite: BIP_LOG(:xdo_user_name)
Conforme uma nova conexão é feita para o banco de dados, ele é conectado à tabela LOGTAB. O valor SMODE especifica a atividade como uma entrada ou uma saída. Chamar esta função como Função de Pós-Processamento também retorna resultados, como aqueles mostrados na tabela abaixo.