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

Откуда:
Сообщений: 6
Всем привет. Возникли затруднения при загрузке xml (во вложении) в таблицу sql server. Ниже приведена моя реализация. Подскажите, пожалуйста, что здесь исправить и какой метод реализации лучше использовать с данным xml.

declare @hdoc int,
@xml varchar(1000)
set @xml=
N'*листинг xml*'
exec sp_xml_preparedocument @hdoc OUTPUT, @xml
select *
from
openxml(@hdoc,'/document',1)
with(
a nvarchar(20) '',
b nvarchar(20) '') X
exec sp_xml_removedocument @hdoc

Ошибки при выводе
The XML parse error 0xc00ce55e occurred on line number 13, near the XML text " <dr6666shel:part_numbe".
Msg 6602, Level 16, State 2, Procedure sp_xml_preparedocument, Line 1 [Batch Start Line 0]
The error description is 'Element was not closed.'.
Msg 8179, Level 16, State 5, Line 1042
Could not find prepared statement with handle 0.
Msg 6607, Level 16, State 3, Procedure sp_xml_removedocument, Line 1 [Batch Start Line 0]
sp_xml_removedocument: The value supplied for parameter number 1 is invalid.

К сообщению приложен файл (xml.xml - 46Kb) cкачать
6 июн 19, 09:55    [21903194]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка сложного xml в таблицу sql server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31326
le7els
Возникли затруднения
А ничего, что у вас XML 46 КБ, а переменная @xml 1000 байт?
6 июн 19, 10:05    [21903203]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка сложного xml в таблицу sql server  [new]
le7els
Member

Откуда:
Сообщений: 6
alexeyvg, спасибо, исправил на nvarchar(max), ошибок нет, но и таблицы с данными тоже.

Что мне нужно дописать для вывода в таблицу сюда?

select *
from
openxml(@hdoc,'/document',1)
with(
a nvarchar(20) '',
b nvarchar(20) '') X
6 июн 19, 10:23    [21903219]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка сложного xml в таблицу sql server  [new]
le7els
Member

Откуда:
Сообщений: 6
Коллеги, подскажите, пожалуйста, что нужно дописать в коде для вывода xml в таблицу, сохранив структуру файла? Пока у меня просто столбцы пустые
6 июн 19, 11:54    [21903324]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка сложного xml в таблицу sql server  [new]
invm
Member

Откуда: Москва
Сообщений: 9263
le7els,

Думаете кто-то будет гадать какую же именно структуру таблицы вы желаете получить?
6 июн 19, 12:08    [21903347]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка сложного xml в таблицу sql server  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3653
le7els
Коллеги, подскажите, пожалуйста, что нужно дописать в коде для вывода xml в таблицу, сохранив структуру файла? Пока у меня просто столбцы пустые


Народная примета: Когда наступает лето появляется много свежезарегистрированных "коллег" с минимальным количество сообщений, но с огромной надеждой получить готовый код, даже если постановку задачи сам коллега не до конца понимает, да это в общем ему и не надо
6 июн 19, 12:29    [21903364]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка сложного xml в таблицу sql server  [new]
le7els
Member

Откуда:
Сообщений: 6
invm, для начала мне нужно, чтобы все данные были в таблице, колонки и значения как из xml. Я открыл файл в экселе (во вложении), чтобы увидеть структуру.

К сообщению приложен файл. Размер - 31Kb
6 июн 19, 12:45    [21903388]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка сложного xml в таблицу sql server  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3653
le7els
invm, для начала мне нужно, чтобы все данные были в таблице, колонки и значения как из xml. Я открыл файл в экселе (во вложении), чтобы увидеть структуру.


так, половина дела сделана - увидел структуру в эхеле, держите нас в курсе
6 июн 19, 13:11    [21903421]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка сложного xml в таблицу sql server  [new]
le7els
Member

Откуда:
Сообщений: 6
Не теряю надежды, выручайте, как мне получить таблицу из xml, сохранив структуру как на скрине? Если есть примеры подобного, то буду очень благодарен.

Модератор: Вложение удалено.


Модератор: Не надо тут спамить скриншотами


Сообщение было отредактировано: 6 июн 19, 14:14
6 июн 19, 13:49    [21903483]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка сложного xml в таблицу sql server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31326
le7els
для начала мне нужно, чтобы все данные были в таблице, колонки и значения как из xml
openxml не умеет превращать произвольный XML в таблицу, в которой все ноды будут представлены как имена полей.

Она может либо вывести данные в соответствии с правилами, указанными в блоке with, либо вывести данные в natiive формате (которые вам потом придётся разобрать)

Так что решайте вашу задачу (которую вы тут не описали) с помощью openxml, который вам нуджно ещё выучить, или ищите другие, более подходящие, инструменты.
6 июн 19, 17:49    [21903862]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить