【发布时间】:2011-03-02 17:23:42
【问题描述】:
在 ssis(2005) 中,我使用执行 SQL 任务来调用存储过程。存储过程需要 3 个参数,所有 3 个都是 ssis 变量。我的包在开发中执行没有问题,但在作为作业运行时失败。
日志给出以下消息:执行查询“Exec nx_sp_WriteFLHeader ?,?,?”失败并出现以下错误:“未指定的错误”。可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确,或者连接没有正确建立。
使用 Sql server profiler,我可以看到存储过程被调用时使用了不正确的值,在 dev 中 (1,null,null) 会类似于 454,404,"sometext"。
当作为作业运行时,我可以看到 ssis 变量已成功用于其他任务,如果在我尝试使用它们时变量已超出范围。我确实在最高级别声明了变量。
谢谢
已解决:在执行 SQL 任务中,参数映射部分中,参数的数据类型之一被定义为数值。将其更改为 Long 后,我的作业成功执行。我传递的 ssis 变量被声明为 int32。
【问题讨论】:
-
你使用的变量是什么?是系统变量还是用户变量?
-
dev和prod中SP的参数类型一样吗?
标签: sql-server sql-server-2005 ssis etl