SSIS构建包含引号的变量字符串(")

时间:2014-12-12 18:34:24

标签: ssis

我正在使用SSIS Expression Builder为Teradata OLEDB连接器构建目标表名称值。 Teradata希望数据库(TSKAGGS)和表(Cabinet_50)用双引号(")括起来。我无法弄清楚如何配置变量。

到目前为止,我有当前的代码:

@ [User :: strDestDB] +"。" + @ [User :: strDestTable] + @ [User :: strSource_ID]

返回: TSKAGGS.Cabinet_50

我需要它返回:" TSKAGGS"。" Cabinet_50"

如何在结果中添加双引号字符?

3 个答案:

答案 0 :(得分:12)

您需要使用\

来转义内部引号
"abc" + "\"in quotes\""

enter image description here

您的具体替换将是

"\"" + @[User::strDestDB] + " \".\""+ @[User::strDestTable] + @[User::strSource_ID] + "\""

或者,你可以懒惰并定义一个名为DoubleQuote的变量并简单地制作上面的

@[User::DoubleQuote] + @[User::strDestDB] + @[User::DoubleQuote] 
+ "." + @[User::DoubleQuote] + @[User::strDestTable] 
+ @[User::strSource_ID] + @[User::DoubleQuote]

答案 1 :(得分:1)

我明白了。我创建了另一个名为strQuote的变量并分配了#34;作为价值。 接下来,我将表达式修改为;

@ [User :: strQuote] + @ [User :: strDestDB] + @ [User :: strQuote] +"。" + @ [User :: strQuote] + @ [ User :: strDestTable] + @ [User :: strSource_ID] + @ [User :: strQuote]

结果返回:" TSKAGGS"。" Cabinet_50"

答案 2 :(得分:0)

我正在使用sql查询变量中的表达式,并在Execute SQl任务中调用该变量,请查看查询中的问题。

LEFT(@[User::FileName],3)=="PWR" ? " SELECT * FROM "+ "["+@[User::SheetName]+"A36:T]" : "SELECT * FROM "+ "["+@[User::SheetName]+"A35:T]"

结果将为" SELECT * FROM [report$A36:T]"