0

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

1999XX9999
2XXX99
1999XX9999
2XXX99
3XXXXX999.99
1999XX9999

每行的第一个字符定义该行的记录类型。我想在数据流中创建一个脚本组件并解析原始行(如下所示)并将三个输出(1、2、3)保存到三个不同的表中。是否可以?

表 1(col1,col2,col3):
999, XX, 9999
999, XX, 9999
999, XX, 9999

表 2(col1,col2):
XXX, 99
XXX, 99

表 3(col1,col2):
XXXXXX, 999.99

如果脚本组件无法做到这一点,SSIS 中还有其他方式吗?最好的解决方案是编写一个程序将文件拆分为三个文件并使用 SSIS 加载它们?

4

1 回答 1

2

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

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

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

  1. 在转换中定义多个输出,并在每行的第一个字符上使用条件来确定将列发送到的输出。
  2. 仅使用脚本转换将行解析为列,并使用 aConditional Split Transformation将您的记录在逻辑上划分为多个数据路径。

两种方法在逻辑上相似,实现方式不同。

于 2012-07-19T08:26:58.223 回答