目录

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

转换指南

转换指南

调用会话前或会话后存储的过程

调用会话前或会话后存储的过程

您可能希望为每个会话运行一次存储过程。例如,如果需要在运行映射之前验证表是否存在于目标数据库中,加载前目标存储过程会检查表,然后继续运行工作流或将其停止。可以对源、目标或任何其他连接的数据库运行存储过程。
要创建加载前或加载后存储过程,请执行以下操作:
  1. 在映射中创建存储过程转换。
  2. 双击存储过程转换,然后选择“属性”选项卡。
  3. 输入存储过程的名称。
    如果导入了存储过程,默认情况下会显示存储过程名称。如果手动设置存储过程,请输入存储过程的名称。
  4. 在连接信息中选择包含存储过程的数据库。
  5. 输入存储过程的调用文本。
    调用文本是存储过程的名称,后面是用括号括起来的所有适用的输入参数。如果没有输入参数,则必须包括一对空括号,否则对存储过程的调用会失败。无需包括 SQL 语句 EXEC,也无需使用 :SP 关键字。例如,要调用称为 check_disk_space 的存储过程,请输入以下文本:
    check_disk_space()
    要传递字符串输入参数,请输入它,且不包括引号。如果字符串中包含空格,则用双引号将参数括起来。例如,如果存储过程 check_disk_space 需要计算机名称作为输入参数,请输入以下文本:
    check_disk_space(oracle_db)
    通过会话前或会话后存储过程传递日期时间值时,该值必须采用 Informatica 默认日期格式并且用双引号括起来,如下所示:
    SP(“12/31/2000 11:45:59”)
    可以在调用文本中使用 PowerCenter 参数和变量。可使用您在参数文件中可定义的任何参数或变量类型。可以在调用文本中输入参数或变量,或者可以使用参数或变量作为调用文本。例如,可以使用会话参数 $ParamMyCallText 作为调用文本,并在参数文件中将 $ParamMyCallText 设置为调用文本。
    必须为会话前和会话后过程的输入参数输入值而不是过程参数。
  6. 选择存储过程类型。
    存储过程类型的选项包括:
    • 源加载前。
      在会话从源检索数据之前,存储过程会运行。这对于验证表的存在性或在临时表中执行数据联接非常有用。
    • 源加载后。
      在会话从源检索数据之后,存储过程会运行。这对于删除临时表非常有用。
    • 目标加载前。
      在会话将数据发送到目标之前,存储过程会运行。这对于验证目标系统上的目标表或磁盘空间非常有用。
    • 目标加载后。
      会话将数据发送到目标之后,存储过程会运行。这对于在数据库中重新创建索引非常有用。
  7. 选择“执行顺序”,然后根据需要单击向上或向下箭头来更改顺序。
    如果在会话中添加了同时执行的多个存储过程(例如在源加载后同时运行的两个过程),则可以设置存储过程执行计划以确定集成服务调用这些存储过程的顺序。需要为要更改的每个存储过程重复执行该步骤。
  8. 单击“确定”。
尽管存储库会验证并保存映射,但 Designer 不会验证存储过程表达式的运行过程中是否存在错误。如果存储过程表达式的配置不正确,会话将失败。使用存储过程测试映射时,请将“替代跟踪”会话设置为详细模式,并配置“在存储过程中”会话选项以便在存储过程失败时停止运行。在会话属性中“配置对象”选项卡的“错误处理”设置上配置这些会话选项。
将丢失输出参数或返回在会话前或会话后存储过程中调用的值,因为没有地方捕捉值。如果需要捕捉值,可能要配置存储过程以在数据库的表中保存值。