SSIS:使SQL命令作为变量来OLE DB源(SSIS: passing sql command

2019-10-18 06:02发布

我已经创建了SSIS 2个变量,即ProductValue和的SQLQuery。 该含有的SQLQuery下面的SQL语句

“SELECT * FROM产品哪里的ProductID>” + @ [用户:: ProductValue]

当我通过从可变的数据访问模式= SQL命令传递的SQLQuery变量OLE DB源,系统返回一个错误消息,如下

错误在数据流任务[OLE DB源[1]:SSIS错误代码DTS_E_OLEDBERROR。 出现了一个OLE DB错误。 错误代码:0x80040E14。 一个OLE DB记录。 来源: “Microsoft SQL Server本机客户端10.0” HRESULT:0x80040E14说明: “声明(S)可能不准备”。 一个OLE DB记录。 来源: “Microsoft SQL Server本机客户端10.0” HRESULT:0x80040E14说明: “附近的 '+' 不正确的语法”。

Answer 1:

你需要让你的SQL查询变量设置为EvaluateAsExpression。

如果您检查在变量表格的SQL查询变量的值应该这样说:

SELECT * FROM Products Where ProductID > 1

如果没有,那么你有没有正确定义的变量。 你的SQL查询变量的值不应包含任何报价或+,只是表达应在这种情况下。



Answer 2:

在任何情况下,运行到这个线程,你可以选择“显示高级编辑器”时,更改设置(=右击OLEDB源),然后选择“组件属性”选项卡和开关“AccessMode”到“SQL命令从变量”。



Answer 3:

把命令是这样的: “SELECT * FROM产品哪里的ProductID>” +(DT_STR,10,1252)@ [用户:: ProductValue] + “”



文章来源: SSIS: passing sql command as variable to ole db source
标签: ssis