Informatica 字符序列
Informatica character sequence
我正在尝试使用 Informatica 在平面文件中创建 AAA、AAB、AAC、AAD、....、BAA、BAB、BAC 等字符序列。我有创建字符序列的公式。
这里我需要在informatica中生成序号。但是我没有任何源文件或数据库来拥有这个源。
在没有源记录可读的情况下,Informatica 中有没有使用序列生成器创建序列的方法?
这有点棘手,因为 Informatica 将逐行处理并且您的映射将不会初始化,直到您通过输入(文件或数据库)提供源行。因此,要通过 Informatica 转换生成长度为 n 的序列,您需要输入 n 行。
另一种解决方案是使用虚拟源(即单行源),您可以从此源传递循环参数,然后使用 Java 转换和 Java 代码生成此序列。
没有映射中的源就无法生成行。
当我需要这样做时,我会使用以下方法之一:
- 在 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
我们可以选择创建序列号,即使它在源中不可用。
创建序列生成器转换。您将获得 NEXTVAL 和 CURRVAL。
在 属性 选项卡中,您将有一个创建序列号的选项。
- 起始值 - 它应该从哪个值开始
- 增量 - 增量值
- 结束值 - 它应该结束的值
- 当前值-你的当前值
- 循环 - 如果您需要循环
- No.of 缓存值
- 重置
- 跟踪级别
将 NEXTVAL 连接到您的目标列。
您可以使用 Java 转换生成行。但即使要使用它,你也需要一个来源。我建议您使用 Java 转换中的公式和带有 select getdate() 语句的数据库的虚拟源,以便返回记录以调用 Java 转换。然后,您也可以在 Java 转换中生成序列,或者将序列生成器连接到 Java 转换的输出以对它们进行编号。
我正在尝试使用 Informatica 在平面文件中创建 AAA、AAB、AAC、AAD、....、BAA、BAB、BAC 等字符序列。我有创建字符序列的公式。
这里我需要在informatica中生成序号。但是我没有任何源文件或数据库来拥有这个源。
在没有源记录可读的情况下,Informatica 中有没有使用序列生成器创建序列的方法?
这有点棘手,因为 Informatica 将逐行处理并且您的映射将不会初始化,直到您通过输入(文件或数据库)提供源行。因此,要通过 Informatica 转换生成长度为 n 的序列,您需要输入 n 行。 另一种解决方案是使用虚拟源(即单行源),您可以从此源传递循环参数,然后使用 Java 转换和 Java 代码生成此序列。
没有映射中的源就无法生成行。
当我需要这样做时,我会使用以下方法之一:
- 在 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
我们可以选择创建序列号,即使它在源中不可用。
创建序列生成器转换。您将获得 NEXTVAL 和 CURRVAL。
在 属性 选项卡中,您将有一个创建序列号的选项。
- 起始值 - 它应该从哪个值开始
- 增量 - 增量值
- 结束值 - 它应该结束的值
- 当前值-你的当前值
- 循环 - 如果您需要循环
- No.of 缓存值
- 重置
- 跟踪级别
将 NEXTVAL 连接到您的目标列。
您可以使用 Java 转换生成行。但即使要使用它,你也需要一个来源。我建议您使用 Java 转换中的公式和带有 select getdate() 语句的数据库的虚拟源,以便返回记录以调用 Java 转换。然后,您也可以在 Java 转换中生成序列,或者将序列生成器连接到 Java 转换的输出以对它们进行编号。