将具有多个布局的平面文件解析为多个目标表?

时间:2012-07-19 04:58:24

标签: ssis

我正在尝试加载混合多个数据集的平面文件。平面文件看起来像。

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加载它们?

1 个答案:

答案 0 :(得分:2)

有可能,您可能应该使用脚本转换来创建可维护的解决方案。

您无法使用平面文件源和连接管理器将输入文件完全解析为列。将您的行读作完整并在脚本转换中使用字符串函数将每行解析为所需的列。

现在,要将记录分发到不同的目的地,您可以:

  1. 在转换中定义多个输出,并在每行的第一个字符上使用条件来确定发送列的输出。
  2. 仅使用脚本转换将行解析为列,并使用Conditional Split Transformation在多个数据路径上逻辑划分记录。
  3. 两种方法在逻辑上相似,实现方式不同。