动态平面文件的动态OLEDB源

时间:2016-10-03 22:01:47

标签: sql ssis sql-server-2008-r2

这似乎是一个受欢迎的热门话题,但我还没有发现有人试图做我正在做的事情。希望这不是重复,这里就是!

我的问题的基本前提是我在SQL Server中有一个包含表名列表的表。我希望SSIS包完成的是读取这些表名(以及其他变量,如开始和结束日期),然后为上述日期过滤的每个表输出一个报告。

到目前为止,为了达到这个目的,我设置了执行SQL任务,用我们的必要值填充我的变量。其中一个是Object类型变量,它根据具有表名列表的表从Execute SQL任务获取完整结果值。

然后Foreach循环使用该Object变量作为其集合循环。然后我获取当前循环索引(表名)并将其分配给变量,该变量被送入数据流OLEDB源,其数据访问模式从变量设置为SQL命令。此变量是一个简短的小报告,它包含先前的变量以过滤结果集。

此时它失败了,因为我怀疑有两件事: 1)我必须在表名变量中放入一个“默认”表,以便首先验证包的执行情况。这个表与首先迭代的表格冲突,因为它是非确定性的?因此元数据的差异使任务失败。

2)元数据在运行时未更新。

我试图这样做的原因是因为有超过200个表我需要从单独的平面文件中提取数据,这些表格将根据它们运行的​​日期范围命名,它们来自的表格,和其他各种识别变量。

如果我必须为每个OLEDB-FlatFile对构建单独的数据流,那将会变得艰难和混乱。

有没有办法完成我的尝试?或者我是否可以动态构建和执行BCP命令?

谢谢!

0 个答案:

没有答案