【问题标题】:how to call Sequence function from SQL into Informatica如何从 SQL 调用 Sequence 函数到 Informatica
【发布时间】:2018-07-25 04:25:55
【问题描述】:

我在 Informatica 中的表达式转换中有一个端口“Number_1”。我将 Number_1 端口连接到目标 sql 表。
每次我运行从 1 到 999 的映射时,我都需要为此端口“Number_1”生成编号。一旦达到 999,Number_1 的值应再次重置为 1。我知道有序列生成器反式但我需要从 SQL 服务器调用序列函数。以上如何实现?

【问题讨论】:

    标签: informatica informatica-powercenter


    【解决方案1】:

    在 sql server 中创建一个存储过程,然后使用存储过程转换从 Informatica 调用它

    【讨论】:

      【解决方案2】:

      您可以使用Stored Procedure 转换来调用它。您也可以在Source Qualifier 上使用存储过程作为 SQL 覆盖,但是...

      我希望您知道自己在做什么,因为这通常是一个非常糟糕的主意。每次调用都需要在集成服务和数据库之间进行通信——这将导致巨大的延迟。因此,最好使用 Informatica 的 Sequence Generator 或者 - 如果您需要的只是一个带循环的整数端口 - 一个简单的表达式变量,也许更好。

      【讨论】:

        【解决方案3】:

        虽然 maciejg 说在性能方面很有意义 - 但是我知道有相当多的人比使用内置数据库排序器更舒服(甚至是一些 Informatica 专家)。

        Informatica 定序器的关键在于它们提供了多大的灵活性,当它们设置错误时,可能会导致意外的数字被选中。

        我的一个示例是用于在表中创建唯一键的定序器 - 如果您在会话之间保留该值,那么它可以正常工作,直到您在重新导入映射时选择了不正确的选项。

        如果您选择从配置文件/表中查找您之前的结束值并将排序器生成的值添加到此值,那么有一天当有人错误地将排序器设置为在运行之间保持值时,您会突然之间每次重新启动会话时跳过序列中的那么多数字。原生 db 排序器非常基础,使其非常可预测且防呆

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-07-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-09-27
          • 1970-01-01
          相关资源
          最近更新 更多