我有一个棘手的平面文件数据源。数据被分组,如下所示:

Country    City
U.S.       New York
           Washington
           Baltimore
Canada     Toronto
           Vancouver

但是我希望它在加载到数据库中时是这种格式:
Country    City
U.S.       New York
U.S.       Washington
U.S.       Baltimore
Canada     Toronto
Canada     Vancouver

有人遇到过这样的问题吗?有想法要解决吗?
我现在唯一的想法是使用游标,但是它太慢了。
谢谢!

最佳答案

cha的答案将起作用,但是如果您需要在SSIS中没有临时/临时表的情况下进行操作,这是另一种方法:

您可以通过使用DataFlow级变量的脚本转换来运行数据流。脚本中的每一行出现时,都会检查“国家/地区”列的值。

如果它具有非空白值,则用该值填充变量,并将其传递到数据流中。

如果“国家/地区”具有空白值,则用变量的值覆盖它,该值将是您获得的最后一个非空白“国家/地区”值。

编辑:我查找了您的错误消息,并了解了有关脚本组件(数据流工具,而不是脚本任务,控制流工具)的一些新知识:



这来自this MSDN article,如果您想走那条路线,它还提供了有关变量分配器变通方法的更多信息,但是当我说可以在脚本中设置package变量的值时,显然我误导了您。您必须使用脚本本地的变量,然后在Post-Execute事件处理程序中对其进行更改。我无法从文章中得知这是否意味着您将无法读取脚本中的变量,如果是这种情况,那么变量分配器将是唯一的选择。或者我想您可以创建脚本将具有只读访问权限的另一个变量,并将其值设置为表达式,以便它始终具有读写变量的值。那可能行得通。

关于sql - 如何使用SSIS加载分组数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36587611/

10-11 02:52
查看更多