【问题标题】:informatica execute sql in sql transformationinformatica 在 sql 转换中执行 sql
【发布时间】:2016-08-11 15:57:20
【问题描述】:

背景:我真的很新。 Informatica Developer for PowerCenter Express 版本:9.6.1 HotFix 2

我想将 t-sql 语句作为工作流程中的一个步骤执行:

    truncate table dbo.stage_customer

我尝试创建一个映射,在其上添加一个 sql 转换。在 sql 查询窗口中输入上述查询。我将映射添加到刚刚开始、映射和结束的工作流程中。当我验证流程时,我收到了这个错误:

    The group [Input] in transformation xxx must have at least one port

我不知道需要哪些端口,因为这(截断语句)基本上不需要输入或输出。

【问题讨论】:

  • 简单地说:你做错了。 Informatica 不是“运行 sql 语句的工具”。它是一个 ETL 工具,可用于创建数据流。为此,它需要源、端口和链接。它还可以执行一些额外的语句——但这并不意味着你可以扔掉所有其他的东西。
  • 不,我不只是将它用于运行 sql 语句,它是工作流程中的一个步骤,我需要截断一个表,填充该表等。
  • 在这种情况下,只需使用会话目标属性 - 或前/后 SQL 语句的组合,以最适合您的为准。

标签: informatica-powercenter


【解决方案1】:

在 Pre-SQL 命令中使用您的查询“truncate table dbo.stage_customer”

【讨论】:

  • 我找不到 pre-sql 命令,是映射还是工作流?我试过看两者,但没有看到任何东西。顺便说一句,我正在使用快速版本
  • ok,在源对象的属性中发现(读取视图)。这可能行得通。
【解决方案2】:

Aswin 建议使用会话属性中的内置选项。

但在生产环境中,用户可能没有对数据库中表的截断表访问权限。在这种情况下,如果您选中 truncate target table 选项,informatica 工作流将失败。最好有一个存储过程来截断目标表并在 informatica 映射中使用该存储过程,以避免在用户没有截断数据库访问权限的情况下工作流失败。

【讨论】:

    【解决方案3】:

    如果您想在加载前截断目标表,为什么不使用会话属性中的内置选项?

    转到工作流管理器->打开会话->映射选项卡->单击左侧列出的目标表->选择属性“截断表选项”即可启用它

    为了回答你的问题,我认为你必须将至少一个输入和输出端口连接到 SQL 转换中(因为它不是未连接的)。只需创建虚拟端口,然后重试

    试试这篇文章 - click here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多