【问题标题】:generating flat files for different sql files in single SSIS package为单个 SSIS 包中的不同 sql 文件生成平面文件
【发布时间】:2016-11-22 14:42:49
【问题描述】:

我有一个包含不同 SQL 文件的文件夹。现在在 SSIS 包中,在 foreach 循环中,我正在读取存储在每个 sql 文件中的查询(使用脚本任务),然后在执行脚本任务中执行查询,从而在变量中获得结果集。

现在我想生成与每个结果集变量对应的平面文件。

这个过程是否可行(我曾尝试使用 dataflowtask,但它没有使用变量作为源)还是我应该使用不同的方法?

【问题讨论】:

  • 这是您的第一个包还是您尝试了其他方法??
  • 我尝试在 foreach 循环中使用 dataflowtask,但我不认为每次迭代我们都可以将命令文本更改为不同的查询...
  • 在这种情况下,您应该尝试动态查询。需要更清楚您的问题
  • 我有不同的查询文件,它们彼此不相关。每个查询都返回数据,我需要为每个使用包生成平面文件。
  • 具体有多少个文件?

标签: ssis-2012 flat-file foreach-loop-container dataflowtask


【解决方案1】:

OLE DB SourceData access mode 下有一个名为SQL command from variable 的选项。我想这就是你要找的那个。

您可以使用参数化查询,如下图所示:

虽然建议的解决方案:

【讨论】:

  • 此选项用于参数化查询,即选择查询部分是固定的,我们在每次迭代中通过参数过滤查询,例如 select * from order where year > @variable。就我而言,每个查询都有不同的表架构,因此无法参数化。
  • 我试过这个,但在 forloop 迭代中它不起作用。在我的情况下,每个查询都返回不同的列,因此它在第二次迭代(在 datafowtask 中)失败,因为 oledb 数据源列不会发生正确的列映射
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-12
相关资源
最近更新 更多