作为作业运行时,SSIS 变量不包含正确的值

Posted

技术标签:

【中文标题】作为作业运行时,SSIS 变量不包含正确的值【英文标题】:SSIS variables not containing correct values when running as job 【发布时间】: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的参数类型一样吗? 【参考方案1】:

已解决:在执行 SQL 任务中,参数映射部分中,参数的数据类型之一被定义为数值。将其更改为 Long 后,我的作业成功执行。我传递的 ssis 变量被声明为 int32。

【讨论】:

以上是关于作为作业运行时,SSIS 变量不包含正确的值的主要内容,如果未能解决你的问题,请参考以下文章

SSIS 数据类型 第二篇:变量的数据类型

SSIS 数据类型 第二篇:变量的数据类型

使用 ssis 包在 SQL Server 代理作业中找不到存储过程错误

SQL Server 代理作业不执行 SSIS 包权限错误

SQL 导出到平面文件比作业中 SSIS 中的相同导出运行得更快

SSIS 运行 PS1 (powershell) 作业,但 SSMS 代理不运行