目录

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 转换

转换指南

转换指南

空值

空值

更新动态查找缓存和目标表时,源数据可能包含一些空值。集成服务可通过以下方式处理这些空值:
  • 插入空值。
    集成服务使用来自源的空值,并且使用来自源的所有值更新查找缓存和目标表。
  • 忽略空值。
    集成服务忽略源中的空值,并且仅使用来自源的非空值更新查找缓存和目标表。
如果您知道源数据包含空值,并且不希望集成服务使用空值更新查找缓存或目标,请选择相应查找/输出端口的“忽略空值”属性。
例如,如果您要更新主客户表。源包含新客户和姓氏已更改的当前客户。源包含姓名已更改客户的客户 ID 和姓名,但其地址列包含空值。您希望在主客户表中插入新客户并更新当前客户的姓名,同时保留当前的地址信息。
例如,主客户表包含以下数据:
Primary Key
CUST_ID
CUST_NAME
ADDRESS
CITY
STATE
ZIP
100001
80001
Marion James
100 Main St.
Mt. View
CA
94040
100002
80002
Laura Jones
510 Broadway Ave.
Raleigh
NC
27601
100003
80003
Shelley Lau
220 Burnside Ave.
Portland
OR
97210
源包含以下数据:
CUST_ID
CUST_NAME
ADDRESS
CITY
STATE
ZIP
80001
Marion Atkins
NULL
NULL
NULL
NULL
80002
Laura Gomez
NULL
NULL
NULL
NULL
99001
Jon Freeman
555 6th Ave.
San Jose
CA
95051
在映射的查找转换中选择“插入否则更新”。为查找转换中的所有查找/输出端口选择“忽略空值”选项。当运行会话时,集成服务将忽略源数据中的空值,并使用非空值更新查找缓存和目标表:
PRIMARYKEY
CUST_ID
CUST_NAME
ADDRESS
CITY
STATE
ZIP
100001
80001
Marion Atkins
100 Main St.
Mt. View
CA
94040
100002
80002
Laura Gomez
510 Broadway Ave.
Raleigh
NC
27601
100003
80003
Shelley Lau
220 Burnside Ave.
Portland
OR
97210
100004
99001
Jon Freeman
555 6th Ave.
San Jose
CA
95051
当选择忽略空值时,您必须确认将集成服务写入查找缓存的相同值输出到目标。当选择忽略空值时,如果将空输入值传递给目标,则查找缓存和目标表可能不同步。根据您希望集成服务在更换缓存中的行时从查找/输出端口输出的值配置映射:
  • 新值。
    仅将查找/输出端口从查找转换连接至目标。
  • 旧值。
    在查找转换后,筛选器或路由器转换前添加一个表达式转换。请在表达式转换中为目标表中的每个端口添加输出端口并创建表达式,以确保不会将空输入值输出到目标中。