Задание SQL для извлечения данных в путь XML отлично работает на моем компьютере, но не на клиентском сервере.

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

При тестировании я настроил это на своей локальной машине, и все работает нормально.

На клиентском сервере я могу запросить представление, и оно вернет данные. Я могу запустить оператор sql для запроса представления, и он возвращает данные в желаемом формате XML. Однако при выполнении задания SQL результирующие данные отображаются в непригодной для использования строке.

Задание SQL выполняется как (CmdExex), а текст задания SQL:

sqlcmd.exe -S <servername> -U <login name> -P <password> -d <databasename> 
-i <sql query /input location> -o <file output location and name>.xml 
-y 8000 -h -1

Задание запускается и запрашивает представление sql, вызывая этот оператор:

SET NOCOUNT ON
SELECT * FROM dbo.<ViewName>
FOR XML PATH ('INCIDENT');

Результаты должны выглядеть следующим образом:

<INCIDENT>
    <YearOf>18</YearOf>
    <IncdNo>xxx</Incdno> 

И они делают это на моей локальной машине при запуске этого задания.

Однако на сайте заказчика результаты выглядят так: (усечено для места)

0x7575087590075E0075300759007575007550075E0057500757506590065006100720075F006600757506759006E0063006750075E006F0075750C7530061006C006C0057500790070006500753006F0067500650075750C7530061006C006C005750079007000

person George Hartz    schedule 04.06.2018    source источник
comment
Какую СУБД вы используете? Я догадался, что это SQL-сервер, и пометил его для вас.   -  person Dragonthoughts    schedule 04.06.2018
comment
Да, SQL Server 2014. Спасибо.   -  person George Hartz    schedule 05.06.2018


Ответы (1)


Решено путем редактирования этой строки

FOR XML PATH («ИНЦИДЕНТ»);

чтобы добавить , TYPE в конце, как так

FOR XML PATH («ИНЦИДЕНТ»), TYPE;

person George Hartz    schedule 12.06.2018