空字符串导致"在命令行参数中检测到错误,请确保正确设置所有参数"

Tab*_*man 5 sql-server ssis etl sql-agent-job sql-server-2016

在SQL 2016 Server上,我有一个调用SSIS包的作业.该包位于SSISDB中的一个项目中并具有参数.其中一个参数是字符串类型,默认为空.

我使用此参数的空值运行作业,并成功运行.

然后我打开了作业属性,转到调用该包的步骤并进入配置并为该参数赋值.

我再次运行该作业并成功运行,参数值对结果产生了预期的影响.

现在我想修改作业并将参数设置回空字符串.重复上面的操作,我打开配置并完全删除参数的值.

在此输入图像描述

当我然后尝试保存Job Step属性时,我会在主题行中显示一条错误对话框.

如果我为该参数添加了非空值,则可以保存作业步骤.

当我第一次创建作业时,我能够使用空字符串保存该值.只是当我将值更改为非空字符串,运行作业,然后尝试将其更改为空,我遇到此错误.

我知道我可以运行alter job脚本或删除并重新创建作业步骤来解决这个问题.我不知道如何解决这个问题.

我的问题是:这是一个已知的错误,还是有一个技巧,使用GUI将执行参数的值从字符串值更改为空字符串?

你们中的任何人都可以这样做,或者我的问题可以重现吗?到目前为止,我在搜索中找不到任何内容.

编辑:按照Aaron的评论,我尝试输入一对单引号作为参数的值.工作接受并成功保存.但是当我运行这个工作时,这对单引号实际上被用作参数的值,而不是空字符串.

Had*_*adi 4

这些问题已在 Microsoft Connect 网站上发布过 2 次。

  • 第一次它被标记为固定,因为用户选择使用解决方法,即传递一个空格,然后将其从包中删除。阅读更多
  • 第二次它被标记为“不会修复”,因为 Microsoft 团队正在关注其他问题阅读更多

MSDN 网络上也提出了类似的问题,并通过解决方法解决了。

所以这似乎是一个软件错误,尚未解决。您可以使用解决方法。