2

我有一个执行 SQL 任务,它尝试执行存储过程,如下所示:

EXEC usp_stored_proc ?, ?, ? OUTPUT, ? OUTPUT;

我有 4 个变量映射到参数。忽略输出参数,这些都是映射到 NVARCHAR 参数的字符串(正如存储过程所期望的那样)。

当我运行包时,一个错误告诉我执行失败,消息输入字符串格式不正确。但是,当我使用断点查找输入参数的运行时值(或至少映射到它们的变量)并使用运行时值在 SSMS 中执行同一行 SQL 时,它工作正常。

任何人都可以帮忙吗?我对此束手无策。我什至无法找出导致问题的确切参数,尽管它可能都是因为值遵循相同的格式。

更多细节:

  • 连接类型:OLE DB
  • 输入变量:字符串 =schema.table
  • 映射参数: NVARCHAR, ParamName = 0, ParamSize =-1

更新

通过制作一个调用精简过程的新执行 sql 组件解决了该问题。然后我慢慢地向过程和附加参数添加代码行,直到到达我开始使用的相同组件,现在它可以工作了。比较原始任务和重建任务,我发现完全没有差异(与过程相同),所以我不知道为什么会出现这个问题。

4

2 回答 2

0

尝试更改参数大小(ParamSize)以匹配存储过程中的参数大小;如果nvarchar(50)然后将其设置为50.

于 2020-03-30T19:50:55.847 回答
0

通过制作一个调用精简过程的新执行 sql 组件解决了该问题。然后我慢慢地向过程和附加参数添加代码行,直到到达我开始使用的相同组件,现在它可以工作了。比较原始任务和重建任务,我发现完全没有差异(与过程相同),所以我不知道为什么会出现这个问题。

于 2020-04-26T12:48:31.183 回答