Sobre Criação da Conexão e Funções de Encerramento

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.