SSIS SQL任务 - "参数名称无法识别"

Rob*_*man 32 ssis

我有一个SQL任务需要运行一个简单的更新来更新单行.

我已将SQLStatement设置为:

update agency set AgencyLastBatchSeqNo = ? where agencyID = ?
Run Code Online (Sandbox Code Playgroud)

在参数映射页面上,我将参数0和参数1设置为我知道包含正确值的变量.我还正确设置了参数名称值.

在数据库中,AgencyLastBatchSeqNo列是一个int,AgencyID是一个大int.有没有人参考找到SSIS中数据类型映射到的内容?我已经猜到了SHORT的int和LONG for big int.

当我运行任务时,我收到以下错误:

[执行SQL任务]错误:执行查询"更新代理商设置AgencyLastBatchSeqNo =?其中AgencyID =?" 失败并出现以下错误:"参数名称无法识别.".可能的故障原因:查询问题,"ResultSet"属性设置不正确,参数设置不正确或连接未正确建立.

任何人都可以建议可能出错的地方?

谢谢

抢.

joh*_*taa 88

答案是在参数映射屏幕中更改参数名称值.

给出以下查询

SELECT Id, AnimalName FROM dbo.Farm WHERE Farm_id = ?
Run Code Online (Sandbox Code Playgroud)

假设我的参数是一个名为User :: Farm_id的整数变量
在参数映射屏幕上选择以下值

Variable Name  -   User::Farm_id
Direction      -   Input
Data Type      -   LONG
Parameter Name -   0
Parameter Size -   -1
Run Code Online (Sandbox Code Playgroud)

最初参数名称将是"NewParameterName".只需将其更改为变量标记的序号位置("?")

  • 所以一个名字实际上并不是一个名字......而是一个序数位置......多么直观......不是.(顺便说一句!) (5认同)
  • 我正在将参数的名称放在参数名称中(震惊恐怖)并且正在撕裂我的头发! (3认同)

小智 5

如果您使用超过 1 个参数,则在执行 sql 任务窗口中转到参数映射并将参数名称设置为 0,1,2,3...,具体取决于参数数量,并将参数大小设置为 -1。 .这一定有助于解决您的问题。