Table des matières

Search

  1. Préface
  2. Introduction aux transformations
  3. Ports de transformation
  4. Caches de transformation
  5. Transformation Outil de validation des adresses
  6. Transformation Agrégation
  7. Transformation Association
  8. Transformation Exception d'enregistrements incorrects
  9. Transformation Convertisseur de casse
  10. Transformation Classeur
  11. Transformation Comparaison
  12. Transformation Consolidation
  13. Transformation Masquage des données
  14. Transformation Processeur de données
  15. Transformation Décision
  16. Transformation Exception d'enregistrements dupliqués
  17. Transformation Expression
  18. Transformation filtre
  19. Transformation Hiérarchique à relationnel
  20. Transformation Java
  21. Référence de l'API de transformation Java
  22. Expressions Java
  23. Transformation jointure
  24. Transformation Générateur de clés
  25. Transformation Libellé
  26. Transformation Recherche
  27. Caches de recherche
  28. Cache de recherche dynamique
  29. Transformation Correspondance
  30. Transformations Correspondance dans l'analyse de champ
  31. Transformations de correspondance dans l'analyse d'identité
  32. Transformation Normaliseur
  33. Transformation Fusion
  34. Transformation Analyseur
  35. Transformation Python
  36. Transformation Rang
  37. Transformation Lecture
  38. Transformation Relationnel à hiérarchique
  39. Transformation Consommateur de service Web REST
  40. Transformation Routeur
  41. Transformation Générateur de séquence
  42. Transformation Trieur
  43. Transformation SQL
  44. Transformation Normalisation
  45. Transformation Union
  46. Transformation Stratégie de mise à jour
  47. Transformation Consommateur de service Web
  48. Analyse des messages SOAP du service Web
  49. Génération des messages SOAP du service Web
  50. Transformation moyenne pondérée
  51. Transformation Fenêtre
  52. Transformation Écriture
  53. Délimiteurs de transformation

Guide de transformation Developer

Guide de transformation Developer

Remplacement SQL et cache de recherche dynamique

Remplacement SQL et cache de recherche dynamique

Vous pouvez ajouter une clause WHERE à la requête de recherche pour filtrer les enregistrements utilisés dans la génération du cache et pour lancer une recherche dans la table de base de données dans le cadre d'une recherche non mise en cache. Cependant, le service d'intégration n'utilise pas la clause WHERE lors de l'insertion de lignes dans un cache dynamique.
Lorsque vous ajoutez une clause WHERE dans le cadre d'une transformation Recherche utilisant un cache dynamique, appliquez une transformation Filtre avant la transformation Recherche pour filtrer les lignes que vous ne voulez pas insérer dans le cache ou dans la table cible. Si vous n'appliquez pas cette transformation Filtre, les résultats du cache et ceux de la table cible peuvent être incohérents.
Par exemple, supposons que vous configuriez une transformation Recherche pour effectuer une recherche dynamique dans la table des employés (appelée EMP), en faisant correspondre les lignes avec EMP_ID. Vous définissez le remplacement SQL de recherche suivant :
SELECT EMP_ID, EMP_STATUS FROM EMP ORDER BY EMP_ID, EMP_STATUS WHERE EMP_STATUS = 4
Lorsque vous exécutez
le mappage
pour la première fois, le service d'intégration génère le cache de recherche depuis la table cible en fonction du remplacement SQL de recherche. Toutes les lignes dans le cache remplissent la condition de la clause WHERE,
EMP_STATUS = 4
.
Par exemple, imaginons que le service d'intégration lise une ligne source remplissant la condition de recherche que vous avez indiquée, mais que la valeur de EMP_STATUS soit 2. Bien que la cible puisse contenir la ligne où la valeur de EMP_STATUS est 2, le service d'intégration ne la trouve pas dans le cache en raison du remplacement SQL. Le service d'intégration insère la ligne dans le cache et la transmet vers la table cible. Lorsque le service d'intégration insère cette ligne dans la table cible, les résultats obtenus peuvent être incohérents lorsque la ligne existe déjà. En outre, certaines lignes du cache ne remplissent pas la condition de la clause WHERE dans le remplacement SQL.
Pour vérifier que vous insérez dans le cache les lignes conformes à la clause WHERE uniquement, ajoutez une transformation Filtre avant la transformation Recherche et définissez la condition de filtre de la même manière que la condition de la clause WHERE du remplacement SQL de recherche.
Dans l'exemple ci-dessus, vous devez entrer la condition de filtre suivante dans la transformation Filtre et dans la clause WHERE du remplacement SQL :
EMP_STATUS = 4