powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Корректная выгрузка xml-файла через bcp
10 сообщений из 10, страница 1 из 1
Корректная выгрузка xml-файла через bcp
    #39788530
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, добрый день. Появилась задача выгрузки данных в формате xml. Решил попробовать сделать напрямую из БД.
с помощью FOR XML EXPLICIT построил нужный формат выгрузки. Отображаю xml в студии, все корректно.

Выгружаю с небольшим набором данных через:
Код: sql
1.
exec xp_cmdshell 'bcp "exec myproc' " queryout \\...\Program\tmp\file.xml -c -T -C RAW'


Параметр -C RAW, т.к. мне вообще нужно в utf-8, но в справке написано, эту кодовую страницу нельзя указывать.
Поэтому внутри хранимки есть конвертация из Win1251 в utf-8 строковых данных.

Все корректно, файл открывается в браузере.

Выгрузил данных побольше, файл не распознался браузером, как корректный xml.
Открыл в notepade++, включил отображение символов конца строки.
А там перенос строк от балды(ну или я не знаю, по какому правилу) и в конце символ переноса CRLF.
Во вложении отобразил.

Подозреваю, что затык где-то в bcp. Подскажите, куда копать?
---
Проходя мимо разложенных граблей, ты теряешь драгоценный опыт. (с)
...
Рейтинг: 0 / 0
Корректная выгрузка xml-файла через bcp
    #39788531
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegabyteПодозреваю, что затык где-то в bcp. Подскажите, куда копать?

Канешно, виноват кто угодно, только не ты.

Копать вам в сторону "внутри хранимки есть конвертация из Win1251 в utf-8 строковых данных.".
...
Рейтинг: 0 / 0
Корректная выгрузка xml-файла через bcp
    #39788534
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222MegabyteПодозреваю, что затык где-то в bcp. Подскажите, куда копать?

Канешно, виноват кто угодно, только не ты.

Копать вам в сторону "внутри хранимки есть конвертация из Win1251 в utf-8 строковых данных.".
Где вы увидели, что я кого-то обвиняю, кроме себя?

Ну вот я убрал конвертацию в utf-8, выгрузил, ничего не изменилось. На переносы это никак не повлияло.
Что еще посоветуете?
...
Рейтинг: 0 / 0
Корректная выгрузка xml-файла через bcp
    #39788536
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2aleks222: Я так понимаю, заходили просто так, лишь бы что-то ляпнуть...
...
Рейтинг: 0 / 0
Корректная выгрузка xml-файла через bcp
    #39788558
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Победил так:
Код: sql
1.
REPLACE(CAST(@result AS NVARCHAR(MAX)), '/>', '/>'+CHAR(13)+CHAR(10))


Сконвертил xml-результат в строку и тупо добавил в конце каждого закрывающего тэга символы переноса.
В итоге получился корректный xml-документ.
...
Рейтинг: 0 / 0
Корректная выгрузка xml-файла через bcp
    #39788562
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegabyteПобедил так:
Код: sql
1.
REPLACE(CAST(@result AS NVARCHAR(MAX)), '/>', '/>'+CHAR(13)+CHAR(10))


Сконвертил xml-результат в строку и тупо добавил в конце каждого закрывающего тэга символы переноса.
В итоге получился корректный xml-документ.
Сказочники атакуют!

Символы переноса нужны в XML даже меньше, чем пятая нога собаке.
...
Рейтинг: 0 / 0
Корректная выгрузка xml-файла через bcp
    #39788581
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222MegabyteПобедил так:
Код: sql
1.
REPLACE(CAST(@result AS NVARCHAR(MAX)), '/>', '/>'+CHAR(13)+CHAR(10))


Сконвертил xml-результат в строку и тупо добавил в конце каждого закрывающего тэга символы переноса.
В итоге получился корректный xml-документ.
Сказочники атакуют!

Символы переноса нужны в XML даже меньше, чем пятая нога собаке.
Сам пробовал выгружать xml, собранный через FOR XML EXPLICIT через bcp? Или теоретик?
...
Рейтинг: 0 / 0
Корректная выгрузка xml-файла через bcp
    #39788582
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte,

скорее всего, Вы что-то неправильно делаете в своем скрипте. Если бы проблемы были на стороне Microsoft, они бы уже давно разорились.
...
Рейтинг: 0 / 0
Корректная выгрузка xml-файла через bcp
    #39788609
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabytealeks222пропущено...

Сказочники атакуют!

Символы переноса нужны в XML даже меньше, чем пятая нога собаке.
Сам пробовал выгружать xml, собранный через FOR XML EXPLICIT через bcp? Или теоретик?

Открою тебе страшную тайну!
XML ничем не отличается от любой другой строки символов.
...
Рейтинг: 0 / 0
Корректная выгрузка xml-файла через bcp
    #39788660
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав КолосовMegabyte,

скорее всего, Вы что-то неправильно делаете в своем скрипте. Если бы проблемы были на стороне Microsoft, они бы уже давно разорились.
В студии же можно открыть xml и он корректный. Если я что и делал не так, то видимо как-то не так задавал параметры в bcp при выгрузке. Ну у меня уже идеи закончились.

Но, в общем, главное, задачу решил. :) Хотя канеш костыльно как-то.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Корректная выгрузка xml-файла через bcp
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]