Sql 带有大括号的代理作业 SSIS 包参数值导致 SqlManager UI 出错

Sql Agent Job SSIS Package Parameter value with curly brace causes error with SqlManager UI

我有一个 SSIS 包部署到 SSISDB 目录。该包可配置参数值,例如 FTP 详细信息。

我注意到,当任何参数值包含左大括号 {

时,尝试为此包创建 SQL 代理作业失败

不幸的是,其中一个密码参数包含左花括号。

问题是:如果不求助于替换实际包中该字符的占位符(感觉很脏),是否可以转义该字符或以允许左花括号的不同方式保存作业?

这是您在尝试保存代理作业步骤时收到的错误消息的图像。

服务器是 SQL Server 2014。

好吧,我已经测试并确认我可以在使用脚本创建作业时在参数中包含花括号。

懒惰的方法(IOW,我就是这样做的):

按照您现在的方式创建您的工作,但是从您的参数值中去掉大括号字符。

打开 SSMS,右键单击作业,然后选择 "Script Job As > Drop & Create..."。

修改生成的脚本,添加大括号字符。

您的参数将在 sp_add_jobstep @command 的片段中,您希望它看起来像这样:

/Par "\"MyParameterName\"";"\"example{value\""

执行。

SSIS 2012 及更新版本似乎对包含左大括号等特殊字符的敏感包参数有问题。一个可行的替代方法是将敏感字符串作为变量放在相应的环境中,并按照 Jeremy J .

的建议从那里加载值

首先,在现有 SSISDB/{Project?}/Environment 节点上的 Integration Services Catalog 中创建一个新环境

然后,在那里配置包含违规字符的敏感字符串变量
并在包中添加对环境的引用。

最后,在作业的配置选项卡上,select环境,并使用环境变量。