Sumário

Search

  1. Prefácio
  2. Trabalhando com Transformações
  3. Transformação Agregador
  4. Transformação Personalizada
  5. Funções de Transformação Personalizada
  6. Transformação Mascaramento de Dados
  7. Exemplos de Mascaramento de Dados
  8. Transformação Expressão
  9. Transformação Procedimento Externo
  10. Transformação Filtros
  11. Transformação HTTP
  12. Transformação de Resolução de Identidade
  13. Transformação Java
  14. Referência da API da transformação Java
  15. Expressões Java
  16. Exemplo de Transformação Java
  17. Transformação Joiner
  18. Transformação Pesquisa
  19. Caches de Pesquisa
  20. Cache de Pesquisa Dinâmica
  21. Transformação Normalizador
  22. Transformação Classificação
  23. Transformação Roteador
  24. Transformação de Gerador de Sequência
  25. Transformação Classificador
  26. Transformação de Qualificador de Origem
  27. Transformação SQL
  28. Usando a Transformação SQL em um Mapeamento
  29. Transformação Procedimento Armazenado
  30. Transformação Controle de Transações
  31. Transformação União
  32. Transformação Dados Não Estruturados
  33. Transformação Estratégia de Atualização
  34. Transformações XML

Guia de Transformações

Guia de Transformações

Trabalhando com Linhas

Trabalhando com Linhas

O Serviço de Integração pode passar uma única linha ao procedimento de transformação personalizada ou um bloco de linhas em uma matriz. Você pode especificar no código do procedimento para especificar se este receberá uma linha ou um bloco de linhas. O desempenho pode aumentar quando o procedimento recebe blocos de linhas:
  • Você pode diminuir o número de chamadas de função feitas pelo Serviço de Integração e pelo procedimento. O Serviço de Integração e o procedimento chamam as funções de notificação da linha de entrada e de notificação de saída, respectivamente, menos vezes.
  • Você pode aumentar a localidade do espaço de acesso à memória para os dados.
  • Você pode gravar o código do procedimento para executar algoritmos em blocos de dados, em vez de em cada linha de dados.
Por padrão, o procedimento recebe uma linha de dados de cada vez. Para receber blocos de linhas, inclua a função INFA_CTSetDataAccessMode() para que o modo de acesso aos dados tenha base em matriz. Quando o modo de acesso aos dados tem base em matriz, use versões de funções de estratégia de linha e de manipulação de dados com base em matriz para acessar e fazer a saída de dados. Quando o modo de acesso a dados é baseado em linha, você deve usar a manipulação de dados baseada em linha, bem como funções de estratégia de linha para acessar e emitir os dados.
Todas as funções com base em matriz usam o prefixo INFA_CTA. Todas as outras funções usam o prefixo INFA_CT.
Use estas etapas para fazer com que o código do procedimento acesse um bloco de linhas:
  1. Chame INFA_CTSetDataAccessMode() durante o processo de inicialização para que o modo de acesso aos dados tenha base em matriz.
  2. Ao criar uma transformação Personalizada passiva, você também pode chamar INFA_CTSetPassThruPort() durante o processo de inicialização, para passar dados para portas de entrada e saída.
    Quando o bloco de dados chega ao procedimento de transformação personalizada, o Serviço de Integração chama p_<proc_name>_inputRowNotification() para cada bloco de dados. Execute o restante das etapas dentro dessa função.
  3. Chame INFA_CTAGetNumRows() usando o controle do grupo de entrada na função de notificação da linha de entrada, para descobrir o número de linhas no bloco.
  4. Chame uma da funções INFA_CTAGetData<datatype>() usando o controle da porta de entrada para obter os dados de determinada linha no bloco.
  5. Chame INFA_CTASetData para que as linhas de um bloco saiam.
  6. Antes de chamar INFA_CTOutputNotification(), chame INFA_CTASetNumRows() para informar ao Serviço de Integração o número de linhas no bloco que o procedimento faz sair.
  7. Chame INFA_CTOutputNotification().