Informatica字符序列

时间:2015-01-09 04:10:32

标签: informatica sequence-generators

我正在尝试使用Informatica在平面文件中创建像AAA,AAB,AAC,AAD,....,BAA,BAB,BAC等等的字符序列。我有公式来创建字符序列。

这里我需要在informatica中生成序列号。但我没有任何源文件或数据库来获取此源。

当没有要读取的源记录时,Informatica中是否有任何方法可以使用Sequence Generater创建序列?

4 个答案:

答案 0 :(得分:2)

这有点棘手,因为Informatica将逐行处理并且您的映射不会初始化,直到您通过输入(文件或数据库)提供源行。因此,要通过Informatica trnasformation生成n个长度的序列,您需要输入n行。 另一个解决方法是使用Dummy Source(即Source with one row),你可以从这个源传递循环参数,然后使用Java变换和Java代码生成这个序列。

答案 1 :(得分:1)

在映射中无法生成没有源的行。

当我需要这样做时,我使用以下方法之一:

  • 使用Unix下的seq命令生成一个包含所需行数的文件。它也可以在不创建文件的情况下用作直接管道源。
  • 从数据库中获取行

例如,Oracle可以使用分层查询生成任意数量的行:

SELECT LEVEL just_a_column
FROM dual
CONNECT BY LEVEL <= 26*26*26

DB2可以通过递归查询来实现:

WITH DUMMY(ID) AS (
    SELECT 1 FROM SYSIBM.SYSDUMMY1    
    UNION ALL
    SELECT ID + 1 FROM DUMMY WHERE ID < 26*26*26
)
SELECT ID FROM DUMMY

答案 2 :(得分:1)

您可以使用 Java 转换生成行。但即使要使用它,您也需要一个来源。我建议您使用 Java 转换中的公式和带有 select getdate() 语句的数据库的虚拟源,以便返回记录以调用 Java 转换。然后,您也可以在 Java 转换中生成序列或将序列生成器连接到 Java 转换的输出以对它们进行编号。

答案 3 :(得分:0)

我们可以选择创建序列号,即使它在源中不可用。

  1. 创建序列生成器转换。你将获得NEXTVAL和CURRVAL。

  2. 在属性选项卡中,您将有一个创建序列号的选项。

    • 起始值 - 应从中开始的值
    • 增量 - 增量值
    • 结束值 - 应结束的值
    • 当前值 - 您当前的值
    • 周期 - 如果您需要循环
    • 缓存值的数量
    • 重置
    • 跟踪级别
  3. 将NEXTVAL连接到目标列。