2011-03-04 100 views
0

我正在使用SSIS 2008 R2。SSIS 2008 - 如何提取unicode字符並留下非Unicode字符串

我想採取一個unicode字符串,提取所有「unicode only」字符,所以我留下了一個「非unicode」字符串。

在我的情況下,應該主要是控制字符,CR,LF等等等等

是否有一個簡單的方法來做到這一點無需更換序列一英里長?

回答

0

不知道這是你想要的。在T-SQL中有一個函數unicode,它返回一個字符的unicode整數值。如果通過「僅限unicode」表示unicode整數值大於255的字符,則可以使用此代碼獲取沒有「unicode」字符的字符串。

declare @str nvarchar(5) 
declare @str2 nvarchar(5) 

set @str = 'A'+nchar(300)+'B'+nchar(400)+'C' 
set @str2 = '' 

;with cte as 
(
    select 
    left(@str, 1) as val, 
    stuff(@str, 1, 1, '') as rest 
    union all 
    select 
    left(rest, 1) as val, 
    stuff(rest, 1, 1, '') as rest 
    from cte 
    where len(rest) > 0 
) 
select @str2 = @str2 + val 
from cte 
where unicode(val) < 256 

print @str 
print @str2 

結果

AĬBƐC 
ABC