【发布时间】:2015-05-06 23:31:04
【问题描述】:
我在 SSIS 工作。我有一个参差不齐的以竖线分隔的文本文件。也就是说,每行的列数是可变的。此外,每一行都可以分类。对于第 1 列 =“A”的行,它应该有 5 列。对于第 1 列 =“B”的行,它应该有 3 列。此外,每列的数据类型因记录类型而异。例如,“A”记录的第 2 列是 int,“B”记录的第 2 列是 varchar(50)。
我正在尝试导入此文本文件并将每种记录类型放入相应的表中。例如,所有“A”记录必须到 A_table,所有“B”记录必须到 B_table。
在我的数据流任务中,我需要将我的平面文件源带到一个 OLE DB 目标。当然,我的平面文件源配置为将所有数据压缩到 1 列中(因为 SSIS 不允许平面文件源中的可变列)。从我迄今为止在网上对这种情况的调查来看,大多数人建议在平面文件源之后执行脚本任务。但是,这对我不起作用,因为在脚本任务解决方法中,我有效地采用具有最大列数的记录类型,为这些列中的每一个定义一个输出,并将其用于所有记录。因为每个记录类型的数据类型都不同,所以这个解决方案对我不起作用。
因此,我的下一个最佳猜测是将平面文件源进行条件拆分。虽然我当然可以这样做,但我不知道如何将我的平面文件源(只有 1 列)发送到目标表(定义了几列)。我该怎么做?
【问题讨论】:
-
这不是一个不规则的权利(或分隔)。这是 SSIS 不做的可变记录类型文件,至少可以轻松做到
标签: ssis