通过SQL Server Agent运行带动态参数的SSIS作业时出错求助
SSIS作业调度参数错误排查与解决
你遇到的这个错误是SQL Server Agent执行SSIS作业时命令行参数格式不合法导致的,我帮你拆解下问题和解决办法:
错误信息还原
Utility Version 11.0.6020.0 for 64-bit
Copyright (C) Microsoft Corporation. All rights reserved.
选项"-prd\ /Par $Project::mailTo;Nagendra.palla@quintiles.com /Par $ServerOption::LOGGING_LEVEL(Int16);1 /Par $ServerOption::SYNCHRONIZED(Boolean);True /CALLERINFO SQLAGENT /REPORTING E "无效。命令行参数无...
问题核心
错误里的-prd\是关键问题点——这个参数格式完全不符合dtexec(SSIS包执行工具)的语法规范,大概率是手动输入命令行时的拼写或格式错误。
具体解决步骤
- 修正无效参数:把错误的
-prd\替换成正确的服务器/项目路径参数。如果是部署到SSIS目录的包,应该用/ISServer指定完整的包路径,比如:/ISServer "\SSISDB\你的项目文件夹\你的项目名\你的包名" /Server "你的SQL实例名" - 规范参数格式:所有
/Par参数要确保引号包裹(如果参数值有特殊字符的话),并且每个参数用空格清晰分隔,不要有多余的转义字符(比如末尾的\)。正确的参数示例:/Par "$Project::mailTo;Nagendra.palla@quintiles.com" /Par "$ServerOption::LOGGING_LEVEL(Int16);1" - 优先用图形化配置:在SQL Server Agent的作业步骤里,尽量不要手动敲命令行,选择「SQL Server Integration Services Package」类型后,通过可视化界面配置:
- 在「服务器」选项卡指定你的SSIS实例
- 在「包」选项卡找到对应项目和包
- 到「参数」选项卡直接填写
mailTo的参数值,系统级参数(比如日志级别)可以在「高级」选项卡设置
- 权限与参数校验:确认SQL Server Agent的运行账户有SSIS目录的访问权限,同时检查SSIS项目里的
mailTo参数确实存在且类型为字符串。
完整命令示例
如果一定要手动写命令行,参考这个正确模板:
dtexec /ISServer "\SSISDB\MyProjectFolder\MySSISProject\MyPackage.dtsx" /Server "SQLInstanceName" /Par "$Project::mailTo;Nagendra.palla@quintiles.com" /Par "$ServerOption::LOGGING_LEVEL(Int16);1" /Par "$ServerOption::SYNCHRONIZED(Boolean);True" /CALLERINFO SQLAGENT /REPORTING E
内容的提问来源于stack exchange,提问作者Nagendra Palla
相关产品推荐
相关产品推荐

