0
我試圖搜索並替換TSQL中字符串中的隱形unicode控制字符。 control character是'LSEP'或0x2028
。替換TSQL中的隱形unicode控制字符
我可以很容易地找到字符足夠使用這兩種查詢:
SELECT * FROM Email WHERE Html LIKE '%[0x2028]%'
或
SELECT * FROM Email WHERE CHARINDEX(NCHAR(0x2028) COLLATE Latin1_General_BIN2, Html) > 0
然而,當我來試試,並取代它,下面少了點工作:
UPDATE Email
SET Html = REPLACE(Html, NCHAR(0x2028) COLLATE Latin1_General_BIN2, '')
WHERE Html LIKE '%[0x2028]%'
任何想法我做錯了什麼。我不能使用N'LSEP'
這個字符本身,因爲它只是在我嘗試粘貼時在腳本中顯示爲換行符!
樣品輸入的要求:
</span><span>
</span><span>
你能提供一個樣本輸入? –
恐怕我不能重現你的情況,也不需要你的CHARINDEX語句的collate語句來工作 - 這個小提琴顯示你的工作(注意替換語句後輸出長度改變):http: //dbfiddle.uk/?rdbms=sqlserver_2014&fiddle=c7798b96000c893dd4f6b7b8e5bbe013 – Bridge
請注意問題 - 您是如何確定這是列中的控制字符的? – Bridge