Получение предупреждения «невозможно переключить кодировку» при попытке вызвать хранимую процедуру в SQL Server для вставки данных XML в таблицу Delta - PullRequest
0 голосов
/ 25 сентября 2018

Я в процессе вставки данных из файла XML на сервер SQL с помощью Biztalk.Для этого я создал хранимую процедуру, которая вставляет новые записи в таблицу на основе данных в файле XML.

Возникла проблема с кодировкой при удалении файла в месте получения.

В журнале сообщений выдается следующее предупреждение:

Синтаксический анализ XML: строка 1, символ 38, невозможно переключить кодировку

И данныене вставляется в мою таблицу.

XML-файл закодирован в UTF-8-BOM.

Я попытался преобразовать его в UTF-16, UTF-8, но он даетто же самое предупреждение

В моей хранимой процедуре SQL я объявляю переменную 'iXml' и преобразую ее в NVARCHAR (MAX):

    @iXml XML
AS
BEGIN

 SET @iXml = CAST(CAST (@iXml AS NVARCHAR(MAX)) AS XML) 

Что я могу сделать, чтобы правильно кодировать мой файл XML?Какую кодировку SQL ожидает от XML?

Редактировать: фрагмент XML

<ns0:Vejstykke xmlns:ns0="http://Company.Vejregister.Schemas.Vejstykke_XML">
    <Data>
        <sekvensnummer>483523</sekvensnummer>
        <tidspunkt>2018-01-14T02:08:38.432Z</tidspunkt>
        <operation>insert</operation>
        <id/>
        <kommunekode>0326</kommunekode>
        <vejkode>2901</vejkode>
        <oprettet/>
        <ændret/>
        <navn>Hedvigsvej</navn>
        <vejnavn>Hedvigsvej</vejnavn>
        <navngivenvej_id/>
    </Data>

1 Ответ

0 голосов
/ 25 сентября 2018

Мне удалось исправить ошибку.Проблема была обнаружена в моем настраиваемом конвейере отправки, который добавил объявление XML в файл с типом кодировки по умолчанию.

...