目录

Search

  1. 前言
  2. 使用转换
  3. 汇总器转换
  4. 自定义转换
  5. 自定义转换函数
  6. 数据屏蔽转换
  7. 数据屏蔽示例
  8. 表达式转换
  9. 外部过程转换
  10. 筛选器转换
  11. HTTP 转换
  12. Identity Resolution 转换
  13. Java 转换
  14. Java 转换 API 引用
  15. Java 表达式
  16. Java 转换示例
  17. 联接器转换
  18. 查找转换
  19. 查找缓存
  20. 动态查找缓存
  21. 规范器转换
  22. 等级转换
  23. 路由器转换
  24. 序列生成器转换
  25. 排序器转换
  26. 源限定符转换
  27. SQL 转换
  28. 在映射中使用 SQL 转换
  29. 存储过程转换
  30. 事务控制转换
  31. 联合转换
  32. 非结构化数据转换
  33. 更新策略转换
  34. XML 转换

转换指南

转换指南

SQL 替代

SQL 替代

使用动态缓存在查找转换中添加 WHERE 子句时,在查找转换之前连接筛选器转换以筛选您不想插入到缓存或目标表中的行。 如果您不包括筛选器转换,可能会在缓存和目标表之间获得不一致的结果。
例如,配置查找转换以按 EMP_ID 在员工表、EMP、匹配行上执行动态查找。 定义以下查找 SQL 替代:
SELECT EMP_ID, EMP_STATUS FROM EMP ORDER BY EMP_ID, EMP_STATUS WHERE EMP_STATUS = 4
首次运行
会话
映射
时,集成服务基于查找 SQL 替代从目标表构建查找缓存。 缓存中的所有行均匹配 WHERE 子句中的条件,
EMP_STATUS = 4
例如,集成服务读取符合您指定的查找条件的源行,但是 EMP_STATUS 的值为 2。 虽然目标可能包含 EMP_STATUS 为 2 的行,但是集成服务因 SQL 替代仍未在缓存中找到该行。 集成服务将行插入缓存并将行传递到目标表。 当集成服务将此行插入目标表时,如果该行已存在则可能会获得不一致的结果。 此外,并不是缓存中的所有行都匹配 SQL 替代中 WHERE 子句中的条件。
要验证您是否仅将行插入匹配 WHERE 子句的缓存,请在查找转换之前添加筛选器转换并将筛选器条件定义为查找 SQL 替代中 WHERE 子句中的条件。
对于上述示例,在筛选器转换中输入以下筛选器条件,在 SQL 替代中输入 WHERE 子句。
EMP_STATUS = 4