在执行SQL任务中,我的sql语句包含一个问号。
这会引起混淆,因为SSIS将其作为输入变量。
那么,如何逃避呢?反斜杠似乎不起作用。
SQL语句类似于
Select Left(@title, PatIndex('%?%', CAST(@title AS varchar(100)) + '?')-2)
它从Unicode string @title.
答案 0 :(得分:0)
我的快速而肮脏的答案是使用变量。在“控制流”级别,单击背景,然后在后台右键单击并选择“变量”。在“变量”窗口中,单击“添加变量”。将其命名为QuerySource
并将数据类型设置为String。粘贴上面的查询然后在Execute SQL Task
中,将源从直接输入更改为变量,然后选择QuerySource。
答案 1 :(得分:0)
使用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)