我有一个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
配置如下所示:
出现此错误的原因是什么?有人可以帮我找到解决这个问题的方法吗?
答案 0 :(得分:1)
始终需要SSIS选择列列表来创建元数据,以便SSIS中的列名可以映射到适当的输出\ destination。
这里使用的是动态sql,它将在运行时自行编译和运行。如果要删除此错误。我建议创建表变量并将动态sql输出到此表变量中,并从@tablevaribale中编写select *。因此该过程会将列列表返回给ssis。