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

Substituição SQL

Substituição SQL

Ao adicionar uma cláusula WHERE a uma transformação de Pesquisa usando cache dinâmico, conecte uma transformação Filtro antes da transformação de Pesquisa para filtrar linhas que você não queira inserir na tabela de destino ou do cache. Se você não incluir a transformação Filtro, poderá obter resultados inconsistentes entre o cache e a tabela de destino.
Por exemplo, você configura uma transformação de Pesquisa para realizar uma pesquisa dinâmica na tabela de funcionários EMP, correspondendo linhas por EMP_ID. Você define a seguinte substituição SQL de pesquisa:
SELECT EMP_ID, EMP_STATUS FROM EMP ORDER BY EMP_ID, EMP_STATUS WHERE EMP_STATUS = 4
Quando você executa pela primeira vez a
sessão
, o Serviço de Integração cria o cache de pesquisa da tabela de destino com base na substituição SQL de pesquisa. Todas as linhas no cache corresponderão à condição na cláusula WHERE,
EMP_STATUS = 4
.
Por exemplo, o Serviço de Integração lê uma linha de origem que atende à condição de pesquisa especificada, mas o valor de EMP_STATUS é 2. Embora o destino possa ter a linha onde EMP_STATUS é 2, o Serviço de Integração não encontra a linha no cache devido à substituição SQL. O Serviço de Integração insere a linha no cache e passa a linha para a tabela de destino. Quando o Serviço de Integração inserir essa linha na tabela de destino, você deverá ter resultados consistentes se a linha já existir. Além disso, nem todas as linhas do cache correspondem à condição da cláusula WHERE na substituição SQL.
Para verificar se você inseriu no cache apenas linhas que correspondam à cláusula WHERE, adicione uma transformação Filtro antes da transformação de Pesquisa e defina a condição de filtro como a condição na cláusula WHERE na Substituição SQL de Pesquisa.
Para o exemplo acima, digite a seguinte condição de filtro na transformação Filtro e a cláusula WHERE na substituição SQL:
EMP_STATUS = 4