Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Перенос таблицы с XML данными с oracle в mssql  [new]
assmsk
Member

Откуда:
Сообщений: 173
Добрый день, столкнулся с такой проблемой.
На оракловом сервере есть таблица в поле которой хранится xml, тип данных колонки clob
Необходимо эту таблицу залить на mssql и потом получить значения тегов.
Обработку необходимо произвести именно на сервере ms так как оракловый сервак крайне вял)
Проблема в том что на оракле она нормально преобразовывается в xml

Select xmltype(xml_value) as xml_value from table


Но ms не может ее преобразовать в xml

Select cast(xml_value as xml) xml_value
from
openquery(xxx,'select xml_value from table')

Такая ошибка:
Msg 9402, Level 16, State 1, Line 87
XML parsing: line 1, character 38, unable to switch the encoding


Что можно попробовать сделать?
19 янв 18, 12:48    [21119819]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы с XML данными с oracle в mssql  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
assmsk, покажите как XML выглядит? если ли теги <? ... /?> в шапке?
19 янв 18, 12:58    [21119872]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы с XML данными с oracle в mssql  [new]
assmsk
Member

Откуда:
Сообщений: 173
Да шапка есть.


<?xml version="1.0" encoding="UTF-8"?> <DAXMLDocument> <OCONTROL> <SIGNATURE> <data_type>text</data_type> <value>Transact</value> </SIGNATURE> <ALIAS> <data_type>text</data_type> <value>CRSM016</value> </ALIAS> </OCONTROL> <REQUEST_INFO> <CHECK_FLAG_NB> <data_type>text</data_type> <value>M</value> </CHECK_FLAG_NB> <CHECK_FLAG_GP> <data_type>text</data_type> <value>Y</value> </CHECK_FLAG_GP> <CHECK_FLAG_EI> <data_type>text</data_type> <value>Y</value> ....
19 янв 18, 13:06    [21119899]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы с XML данными с oracle в mssql  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7671
assmsk,

в этом и дело, сиквел не работает с UTF-8. Вам нужен посредник, который перекодирует UTF-8 в Win-1251 и поменяет или удалит заголовок. Например, SSIS.
19 янв 18, 13:10    [21119911]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы с XML данными с oracle в mssql  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Можно просто через REPLACE вырезать эти теги и все будет ок

<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-16"?>
19 янв 18, 13:14    [21119932]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы с XML данными с oracle в mssql  [new]
assmsk
Member

Откуда:
Сообщений: 173
AlanDenton, она огромного размера и не помещается в varchar, как можно обрезать ntext?
19 янв 18, 13:36    [21120062]     Ответить | Цитировать Сообщить модератору
 Re: Перенос таблицы с XML данными с oracle в mssql  [new]
assmsk
Member

Откуда:
Сообщений: 173
Разобрался, реплейснул поле в оракле,
всем спасибо
19 янв 18, 14:09    [21120262]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить