我正在尝试加载混合多个数据集的平面文件。平面文件看起来像。
1999XX9999 2XXX99 1999XX9999 2XXX99 3XXXXX999.99 1999XX9999
每行的第一个字符定义该行的记录类型。我想在数据流中创建一个脚本组件并解析原始行(如下所示)并将三个输出(1,2,3)保存到三个不同的表中。可能吗?
Table1(col1, col2, col3): 999, XX, 9999 999, XX, 9999 999, XX, 9999 Table2(col1, col2): XXX, 99 XXX, 99 Table3(col1, col2): XXXXX, 999.99
如果脚本组件无法执行,那么SSIS中的任何其他方式?最好的解决方案是编写程序将文件拆分为三个文件并使用SSIS加载它们?
答案 0 :(得分:2)
有可能,您可能应该使用脚本转换来创建可维护的解决方案。
您无法使用平面文件源和连接管理器将输入文件完全解析为列。将您的行读作完整并在脚本转换中使用字符串函数将每行解析为所需的列。
现在,要将记录分发到不同的目的地,您可以:
Conditional Split Transformation
在多个数据路径上逻辑划分记录。两种方法在逻辑上相似,实现方式不同。