我在执行 SQL 任务中执行了一个简单的查询 -
SELECT col1, col2
from thetable
where code = ?
order by id asc
执行 sql 任务 - ADO.NET 连接 参数“code”在SSIS中是int32,在exec sql任务的参数映射中是int32。
它在 SQL Server 中工作正常,但在 SSIS 中会导致错误 -
[执行 SQL 任务] 错误:执行查询“SELECT col1, col2 从他们...”失败并出现以下错误:“无法创建 IDataAdapter 对象。执行 SQL 任务可能不完全支持此提供程序。错误消息“'?'附近的语法不正确。'。”。可能的失败原因:查询问题、“ResultSet”属性设置不正确、参数设置不正确或连接未正确建立。
如何修复此错误?
最佳答案
ADO.NET 对参数使用不同的语法 (@) - Map Query Parameters to Variables in an Execute SQL Task
您正在使用 ?
作为参数标记,它适用于 OleDb 和 ADO,但不适用于 ADO.NET。尝试将 ?
替换为 @code
,然后在参数映射中将参数名称更改为 @code:
SELECT col1, col2
from thetable
where code = @code
order by id asc
关于c# - 无法创建 IDataAdapter 对象。执行 SQL 任务可能不完全支持此提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20792763/