在SSIS OLE-DB源

时间:2017-01-03 07:56:58

标签: sql-server tsql ssis dynamic-sql ssis-2012

我有一个SSIS包,它使用带有动态SQL的存储过程作为OLEDB源。当我执行包时,我收到此错误

  

来源:“Microsoft SQL Server Native Client 11.0”Hresult:0x80004005   描述:“因为语句无法确定元数据   过程's_offc_cap_st_rpt_efile'中的'exec sp_executesql @sqlStr'   包含动态SQL。考虑使用WITH RESULT SETS子句   明确描述结果集。“。

Oledb source配置如下所示:

enter image description here

出现此错误的原因是什么?有人可以帮我找到解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:1)

始终需要SSIS选择列列表来创建元数据,以便SSIS中的列名可以映射到适当的输出\ destination。

这里使用的是动态sql,它将在运行时自行编译和运行。如果要删除此错误。我建议创建表变量并将动态sql输出到此表变量中,并从@tablevaribale中编写select *。因此该过程会将列列表返回给ssis。