平面文件目标中的动态列

时间:2011-07-14 21:23:38

标签: sql-server ssis

我正在开发一个通用SSIS包,它接收一个平面文件,向其添加新列,并生成一个新的平面文件。

我遇到的问题是新列的数量因存储过程XML参数而异。我尝试使用“执行进程任务”来调用BCP,但XML参数对于命令行来说太长了。

我在网上搜索,发现你无法在运行时动态更改SSIS包,而且我必须使用脚本任务来生成输出。我开始走这条路,发现你仍然需要让脚本组件知道列的接收方式,这正是我在设计时不知道的。

我从CozyRoc找到了第三方SSIS扩展程序,但我想这样做而没有任何扩展。

有人做过这样的事吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果在运行时未知列数,则必须动态执行某些操作,这意味着使用脚本任务和/或脚本组件。

工作流程可能是:

  1. 解析XML以获取行数
  2. 保存包变量中的行数
  3. 根据变量
  4. 将列添加到平面文件中

    这很可能使用脚本任务,但如果没有涉及数据流,可能更容易在外部Perl脚本或C#程序中完成整个操作,只需从包中调用它。