【问题标题】:How to escape question mark in SSIS?如何在 SSIS 中转义问号?
【发布时间】:2013-09-28 22:33:50
【问题描述】:
在Execute SQL Task中,我的sql语句中包含一个问号。
这会导致混淆,因为 SSIS 将其作为输入变量。
那么,如何逃避呢?反斜杠似乎不起作用。
SQL语句是这样的
Select Left(@title, PatIndex('%?%', CAST(@title AS varchar(100)) + '?')-2)
它从 Unicode string @title. 中提取那些非双字节字符(在左侧)
【问题讨论】:
标签:
sql
ssis
special-characters
【解决方案1】:
我快速而肮脏的答案是使用变量。在控制流级别,单击背景,然后在背景中右键单击并选择变量。在变量窗口中,单击添加变量。将其命名为QuerySource 并将数据类型设置为字符串。粘贴上面的查询,然后粘贴到Execute SQL Task,将源从直接输入更改为变量,然后选择查询源。
【解决方案2】:
使用 CHAR(53) 代替:
DECLARE @title as varchar(100) = 'Some'+CHAR(63)+'Data'
Select Left(@title, PatIndex('%'+CHAR(63)+'%', CAST(@title AS varchar(100)) + CHAR(63))-2)