如何从SQL调用序列函数到Informatica

时间:2018-02-14 14:43:34

标签: informatica informatica-powercenter

我在Informatica的表达式转换中有一个端口'Number_1'。我将Number_1端口连接到目标sql表。我每次从1到999运行映射时都需要为这个端口'Number_1'生成数字。一旦达到999,那么Number_1的值应该重置为1.我知道有序列发电机转换。但我需要从SQL服务器调用序列函数。如何实现上述目标?

3 个答案:

答案 0 :(得分:0)

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

调用它

答案 1 :(得分:0)

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

我希望你知道你在做什么,因为这通常是一个非常糟糕的主意。每次呼叫都需要Intergration Service和数据库之间的通信 - 这将导致巨大的延迟。因此,使用Informatica的Sequence Generator要好得多,或者 - 如果你需要的只是一个带循环的整数端口 - 一个简单的表达式变量,那就更好了。

答案 2 :(得分:0)

虽然maciejg表示很有意义的表现 - 但是我知道很少有人比使用内置数据库音序器(甚至是一些Informatica专家)更熟悉使用本机数据库音序器。

使用Informatica音序器可以提供多少灵活性,当它们设置错误时,可能会导致意外数字被选中。

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

如果您选择从配置文件/表中查找以前的结束值并将序列发生器生成的值添加到此,那么有一天当有人错误地将序列发生器设置为在运行之间保持值时,您将全部每次重启会话时突然跳过序列中的许多数字。原生数据库序列发生器非常基本,使它们非常可预测和万无一失