SSIS 2008 - Как извлечь символы Unicode и оставить строку без Unicode - PullRequest
0 голосов
/ 04 марта 2011

Я использую SSIS 2008 R2.

Я хочу взять строку в Юникоде, извлечь все символы «только для Юникода», чтобы у меня осталась строка «не в Юникоде».

В моем случае это должны быть в основном управляющие символы, CR, LF и т. Д. И т. Д.

Есть ли простой способ сделать это без последовательности замены длиной в милю?

1 Ответ

0 голосов
/ 05 марта 2011

Не уверен, что это то, что вы хотите вообще. В T-SQL есть функция unicode , которая возвращает целочисленное значение Unicode для символа. Если вы под словом «только Юникод» подразумеваете символы с целочисленным значением Юникода больше 255, вы можете использовать этот код, чтобы получить строку без символов «Юникод».

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
...