2013-06-12 41 views
1

我在SSIS中创建了2个变量,分别是ProductValue和SQLQuery。所述的SQLQuery包含SQL语句如下SSIS:将sql命令作为变量传递给ole db源

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

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

数据流任务[OLE DB源[1]]出错:SSIS错误代码DTS_E_OLEDBERROR。发生了OLE DB错误。错误代码:0x80040E14。 OLE DB记录可用。源:“Microsoft SQL Server Native Client 10.0”Hresult:0x80040E14描述:“无法准备语句”。 OLE DB记录可用。源:“Microsoft SQL Server Native Client 10.0”Hresult:0x80040E14描述:“+'。”附近的语法不正确。

回答

4

您需要将SQL查询变量设置为EvaluateAsExpression。

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

SELECT * FROM Products Where ProductID > 1 

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

+0

如何“您需要将您的SQL查询变量设置为EvaluateAsExpression”? –

+0

@KumarVaibhav它在变量属性中 –

0

如果有人遇到此线程,可以在选择“Show advanced editor”(=右键单击Oledb源代码)并选择“Component Properties”选项卡并将“AccessMode”切换为“SQL Command From变量”。