Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Из UCS-2 в UTF-8 програмно  [new]
at5454
Member

Откуда:
Сообщений: 21
SQL Сервер 2008
Вот этим запросом успешно рожаю xml файлик. Теперь мне как то его нужно конвертировать из UCS-2 в UTF-8.
Как этого сделать не знаю. Думаю здесь 3 варианта:
1) сделать какой то специальный тип поля временной таблицы которая хранит xml данные
2) какую то специальную команду добавить при выгрузке через bcp
3) ну или уже готовый файлик пережевать каким нибудь скриптом, который откроет его в нотепаде и сделает "сохранить как"
Подскажите пожалуйста каким способом будет проще?

if exists (select * from tempdb.dbo.sysobjects where name='##finish') drop table ##finish
declare @path varchar(1000)
declare @table varchar(1000)
declare @file varchar(1000)
declare @serv varchar(1000)
set @serv='sql2'
set @path ='\\SRVFILE1\office\Ex_AX_Temp\import.xml'
set @table ='##finish'
select itog into ##finish from ##resultimport1
order by lineno_
set @file='bcp "'+@table+'" out "'+@path+'" -w -T -S '+@serv
Exec master..xp_cmdshell @file
6 фев 15, 15:26    [17229040]     Ответить | Цитировать Сообщить модератору
 Re: Из UCS-2 в UTF-8 програмно  [new]
Antoshka
Member

Откуда:
Сообщений: 828
Сделай CLR-функцию с вызовом Encoding.UTF8.GetBytes() и, заодно, CLR-процедуру с вызовом File.WriteAllBytes() - избавят от кучи костылей
6 фев 15, 22:12    [17230979]     Ответить | Цитировать Сообщить модератору
 Re: Из UCS-2 в UTF-8 програмно  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31430
at5454
Как этого сделать не знаю.
А опцию -C не смотрели?

Ну или действительно, перекодировать какой нибудь прогой...
6 фев 15, 23:37    [17231387]     Ответить | Цитировать Сообщить модератору
 Re: Из UCS-2 в UTF-8 програмно  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
at5454, Такие штуки безопаснее выполнять SSIS пакетом (запретить xp_cmdshell), да и скрипт конвертации там можно замутить на C#.
8 фев 15, 00:01    [17233861]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить