我有一个棘手的平面文件数据源。数据被分组,如下所示:
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/