0

我有一个包含四个字段的 CSV 文件:

FIELD_A, FIELD_B, FIELD_C, FIELD_D
1, 2, 3, 4
5, 6, 7, 8

我还在 PDI 中创建了一个转换,它有一个读取 CSV 输入文件步骤和一个在数据库表中插入值的后续步骤。

这很好用,但是我可能会在输入文件中得到其他组合(恕不另行通知),例如:

FIELD_A, FIELD_B, FIELD_D
1, 2, 4
5, 6, 8

我假设 PDI 将足够智能,可以按名称映射字段,并根据列标题的位置发送到下一步 FIELD_A、FIELD_B 等等。相反,它采用文件中的前三个字段并将它们映射到步骤中的前三个字段。结果,我在 FIELD_C 中获得了 FIELD_D 的值。

有没有办法通过字段名称而不是位置来获得转换图?每次收到输入字段时,我都无法更改转换。

4

2 回答 2

1

您还可以选择将元数据注入转换以读取 CSV 文件并插入表中。您首先创建一个转换来读取 CSV 文件中存在哪些列(仅读取带有列标题的 CSV 的第一行),然后将该信息注入转换中的读取 CSV 步骤和输出表步骤。

于 2021-01-18T12:01:03.220 回答
1

有很多方法可以做到这一点。在插入数据库之前使用“选择值”步骤是简单的方法。您可以从Here找到示例转换 。在“CSV 文件输入”中,您可以先调用具有 4 个字段的文件,然后可以调用具有 3 个字段的文件进行测试。让我知道它是否可以。

于 2021-01-17T08:07:20.853 回答