我有一个执行 SQL 任务,它尝试执行存储过程,如下所示:
EXEC usp_stored_proc ?, ?, ? OUTPUT, ? OUTPUT;
我有 4 个变量映射到参数。忽略输出参数,这些都是映射到 NVARCHAR 参数的字符串(正如存储过程所期望的那样)。
当我运行包时,一个错误告诉我执行失败,消息输入字符串格式不正确。但是,当我使用断点查找输入参数的运行时值(或至少映射到它们的变量)并使用运行时值在 SSMS 中执行同一行 SQL 时,它工作正常。
任何人都可以帮忙吗?我对此束手无策。我什至无法找出导致问题的确切参数,尽管它可能都是因为值遵循相同的格式。
更多细节:
- 连接类型:OLE DB
- 输入变量:字符串 =
schema.table
- 映射参数:
NVARCHAR
, ParamName =0
, ParamSize =-1
更新
通过制作一个调用精简过程的新执行 sql 组件解决了该问题。然后我慢慢地向过程和附加参数添加代码行,直到到达我开始使用的相同组件,现在它可以工作了。比较原始任务和重建任务,我发现完全没有差异(与过程相同),所以我不知道为什么会出现这个问题。