【问题标题】:Spaces in the connection string value of an SSIS CommandFile variable valueSSIS CommandFile 变量值的连接字符串值中的空格
【发布时间】:2014-07-18 15:44:56
【问题描述】:

我是 SSIS 的新手(我的第一个真正的项目),我已经构建了一个包,可以成功地在数据库上执行一些插入操作。我想将它部署到多个环境,所以我创建了一个连接管理器,它的连接字符串将从命令行传入,而命令行又将在命令文件中定义。

我从命令行运行的命令是...

DTExec /F InitialDatabseImport.dtsx /CommandFile InitialCommandFile.config.txt

在命令文件(InitialCommandFile.config.txt)中我有以下变量赋值...

/SET \Package.Variables[User::DBConnectionString].Properties[Value];"\"Data Source=(localdb)\ProjectsV12;Initial Catalog=DatabaseName;Integrated Security=SSPI;Connect Timeout=30;Auto Translate=False;"\"

运行这个我得到以下错误...

Option "Source=(localdb)\ProjectsV12;Initial" is not valid.

似乎是用空格而不是分号分隔连接字符串。


我尝试了许多带引号的配置。在这里,我将“数据”前面的引号更改为似乎更有意义的内容...

/SET \Package.Variables[User::DBConnectionString].Properties[Value];\""Data Source=(localdb)\ProjectsV12;Initial Catalog=MarketingPrefsDB;Integrated Security=SSPI;Connect Timeout=30;Auto Translate=False;"\"

返回错误...

The argument "\Package.Variables[User::DBConnectionString].Properties[Value];\"Data" has mismatched quotes.

而这个,我把整个作业都用引号括起来了……

/SET "\Package.Variables[User::DBConnectionString].Properties[Value];\"Data Source=(localdb)\ProjectsV12;Initial Catalog=MarketingPrefsDB;Integrated Security=SSPI;Connect Timeout=30;Auto Translate=False;\"";

返回错误...

Argument ""\Package.Variables[User::DBConnectionString].Properties[Value];\"Data" for option "set" is not valid.

有没有其他看到这个问题的人能够解决这个问题?

谢谢, G

更新 - 2014/07/21

当我将 SET 命令直接放在命令行中时,我得到了一个稍微不同的错误......

命令行 ...

C:\Project>DTExec /F QuaeroInitialImport.dtsx /SET \Package.Variables[User::DBConn
ectionString].Properties[Value];"Data Source=servername;Initial Catalog=DatabaseName;Integrated Security=SSPI;Connect Timeout=30;Auto Translate=False;"

错误信息

Argument ""\Package.Variables[User::DBConnectionString].Properties[Value];\"Data Source=servername;Initial Catalog=DatabaseName;Integrated Security=SSPI;Connect Timeout=30;Auto Translate=False;" for option "set" is not valid.

【问题讨论】:

  • 我现在不记得转义规则,但您没有使用平衡双引号。 ;"\"Data Source...False;"\" 打开引用,转义引用,东西,关闭引用,转义引用。我希望它像;"\"Data Source...False;\""
  • 不...我同意这句话也显得有些古怪。这就是为什么我尝试了一些报价组合。我已经重新尝试了你的建议,但是以防万一我放屁但仍然遇到同样的错误。 (还是)感谢你的建议。还有其他想法吗?

标签: ssis bids sql-server-data-tools


【解决方案1】:

我遇到了类似的问题,只是分享我的解决方法,以防其他人通过谷歌到达这里。

我的情况是:

在 SQL Server 2014 上部署包,我在包中使用了一些包参数并遇到了这个问题。如果我不在另一台运行 SQL Server 2014 的服务器上使用包参数(两台服务器都运行相同版本的 SQL Server 2014),我会遇到这种情况。

我通过将连接空间的关键字中的所有空格替换为下划线 (_) 来解决此问题。该连接在我的服务器上为我工作,例如:

Data_Source=xxx.xxx.xxx.xxx,xxxx;Initial_Catalog=ABC_DEF;Provider=SQLNCLI11.1;Persist_Security Info=True;Auto_Translate=False;User_ID=userabc;

请注意,即使我忘记在某些关键字中替换一些空格,它仍然有效。

所以我最后改成如下:

Data_Source=xxx.xxx.xxx.xxx,xxxx;Initial_Catalog=ABC_DEF;Provider=SQLNCLI11.1;Persist_Security_Info=True;Auto_Translate=False;User_ID=userabc;

所以...在这种情况下我并不感到舒服,因为我不确定它是否正在进行更正设置...您仍然需要自己验证它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    相关资源
    最近更新 更多