我正在使用SSIS Expression Builder为Teradata OLEDB连接器构建目标表名称值。 Teradata希望数据库(TSKAGGS)和表(Cabinet_50)用双引号(")括起来。我无法弄清楚如何配置变量。
到目前为止,我有当前的代码:
@ [User :: strDestDB] +"。" + @ [User :: strDestTable] + @ [User :: strSource_ID]
返回: TSKAGGS.Cabinet_50
我需要它返回:" TSKAGGS"。" Cabinet_50"
如何在结果中添加双引号字符?
答案 0 :(得分:12)
您需要使用\
"abc" + "\"in quotes\""
您的具体替换将是
"\"" + @[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]"