【问题标题】:How to call a unconnected stored procedure in Pre-SQL using Informatica?如何使用 Informatica 在 Pre-SQL 中调用未连接的存储过程?
【发布时间】:2020-08-06 23:57:43
【问题描述】:

我创建了一个映射来截断和加载目标表中的数据。我曾经在我的映射中使用未连接的存储过程转换。存储过程没有输出结果,它本身会有输入参数(数据库名称、模式名称、表名称)。我尝试编写不同的命令来调用存储过程

:SP.sp_name('db name', 'schema name', 'table name') 
CALL sp_namE('db name', 'schema name', 'table name'); 
CALL SP_NAME(); 

但它们都不起作用。

映射如下:

SOURCE > SQ > TARGET  UNCONNECTED sp transformation.

【问题讨论】:

    标签: sql-server informatica informatica-powercenter


    【解决方案1】:

    调用 SQL prodedure - 或任何其他 SQL 语句 - 作为 Pre-或 Post-SQL 根本不需要在映射中进行转换。您可以放置​​任何将在beforeafter 映射运行时执行的 SQL。这意味着它会在映射根本不运行时运行。

    现在,如果您需要从某个来源获取一些输入参数以调用您的 SQL 过程,那么您需要使用映射中的SQL Transformation 调用 SQL 过程,读取参数,然后调用 SQ .您可能还需要一个 False-Filter 来消除发送到目标的任何输出。

    您的最终映射如下:

    Source -> Source Qualifier -> SQL Transformation -> Filter -> Target
    

    【讨论】:

    • 嗨 Maciejp,请考虑您的源是平面文件,并且您想在获取源数据之前截断表,您的方法在 SQL 前或后 SQL 中是不可能的,因为源是平面文件
    • 嗯......它确实会。 “调用 SQL prodedure - 或任何其他 SQL 语句 - 作为 Pre-或 Post-SQL 根本不需要在映射中进行转换。”这意味着您甚至可以使用“从平面文件”或“到平面文件”映射来做到这一点。您仍然可以使用如上所示的 SP 转换来显式调用。
    【解决方案2】:

    在未连接的存储过程转换中,您可以选择在需要时执行该过程,例如在源提取之前、源提取之后、目标插入之前、目标插入之后和正常。以下是属性截图中的选项,请以这种方式调用过程并选择存储过程类型所需的属性

    第二个选项是,如果您的源和目标是数据库,则在会话任务属性中的源或目标中的 pre 或 post 中调用该过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多