目录

Search

  1. 前言
  2. 使用 Designer
  3. 使用源
  4. 使用平面文件
  5. 使用目标
  6. 映射
  7. Mapplet
  8. 映射参数和变量
  9. 使用用户定义的函数
  10. 使用调试器
  11. 查看数据沿袭
  12. 比较对象
  13. 管理业务组件
  14. 创建多维数据集和维度
  15. 使用映射向导
  16. 附录 , A: 数据类型引用
  17. 附录 , B: 配置 Web 浏览器

Designer 指南

Designer 指南

配置目标更新替代的规则和准则

配置目标更新替代的规则和准则

输入目标更新查询时,请遵循以下规则和准则:
  • 如果使用目标更新替代,必须手动将所有数据库预留字加上引号。
  • 如果目标列名称包含以下任何字符,则不能替代默认的 UPDATE 语句:
    ' , ( ) < > = + - * / \ t \ n \ 0 <space>
  • 在目标更新查询中可以使用参数和变量。 可使用您在参数文件中可定义的任何参数或变量类型。 可以在 UPDATE 语句内输入参数或变量,也可以使用参数或变量作为更新查询。 例如,可以输入一个会话参数 $ParamMyOverride 作为更新查询,并在参数文件中将 $ParamMyOverride 设置为 UPDATE 语句。
  • 保存映射时,Designer 将验证您是否引用了有效的端口名称, 但不会验证 SQL。
  • 如果将目标表中的一个行更新了多次,则数据库仅保留最后一次更新的数据。 如果映射没有定义结果数据的顺序,则基于相同数据运行的不同映射可能会在目标表中生成不同的数据。
  • 不含任何列引用的 WHERE 子句可更新目标表中的所有行,也可能不更新目标表中的任何行,具体视 WHERE 子句和映射中的数据而异。 例如,如果转换的任何行满足 EMP_ID > 100,以下查询可将目标表中
    所有
    行的 EMP_NAME 设置为“MIKE SMITH”:
    UPDATE T_SALES set EMP_NAME = 'MIKE SMITH' WHERE :TU.EMP_ID > 100
  • 如果 WHERE 子句不包含端口引用,则映射将为映射的每一行更新相同的一组行。 例如,以下查询会将满足 EMP_ID > 100 的所有员工更新为使用映射最后一行中的 EMP_NAME:
    UPDATE T_SALES set EMP_NAME = :TU.EMP_NAME WHERE EMP_ID > 100
  • 如果映射包含更新策略或自定义转换,则目标更新语句仅会影响标记为更新的记录。
  • 如果使用“目标更新”选项,请配置会话以将所有源记录标记为更新。