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