Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Данные из атрибутов xml / 8 сообщений из 8, страница 1 из 1
23.10.2020, 08:52
    #40011083
Sadmann
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные из атрибутов xml
Добрый день!

Подскажите пожалуйста как достать все данные из атрибутов Value.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
declare @x xml

select @x = 
'
<ID Value = "12345"  />
<ID Value = "56789   />
<ID Value = "101112" />
'
...
Рейтинг: 0 / 0
23.10.2020, 09:20
    #40011087
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные из атрибутов xml
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
declare @x xml =  
'
<root>
<ID Value = "12345" />
<ID Value = "56789" />
<ID Value = "101112" />
</root>
'

declare @y int

exec sp_xml_preparedocument @y output, @x; 

select * 
  from openxml(@y, '/root/ID', 1)
  with (Value int)


Документация тут , следовало бы читать
...
Рейтинг: 0 / 0
23.10.2020, 09:23
    #40011090
Sadmann
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные из атрибутов xml
fkthat,
Код: sql
1.
2.
3.
4.
5.
6.
select @x = 
'
<ID Value = "12345"  />
<ID Value = "56789"   />
<ID Value = "101112" />
'



Зачем вы добавили root?
...
Рейтинг: 0 / 0
23.10.2020, 09:41
    #40011093
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные из атрибутов xml
Sadmann
Зачем вы добавили root?

Иначе это будет невалидный XML и он фиг прочитается. Насколько я знаю. А в чем сложность, сделай просто сначала типа:

Код: sql
1.
2.
declare @x2 xml
select @x2 = '<root>' + @x + '</root>'
...
Рейтинг: 0 / 0
23.10.2020, 09:43
    #40011094
Sadmann
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные из атрибутов xml
fkthat,
Спаибо, сейчас попробую.
...
Рейтинг: 0 / 0
23.10.2020, 09:51
    #40011096
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные из атрибутов xml
fkthat
Иначе это будет невалидный XML и он фиг прочитается.

C sp_xml_preparedocument - да, не прочитается. А с XQuery прочитается запросто:
Код: sql
1.
2.
3.
4.
5.
6.
7.
declare @x xml=N'
<ID Value = "12345" />
<ID Value = "56789" />
<ID Value = "101112" />'
select
  t.n.value('@Value', 'int')
from @x.nodes('/ID') t(n)


Ну, и при использовании sp_xml_preparedocument надо по окончании работы вызывать sp_xml_removedocument, иначе будут утечки памяти на сервере.
...
Рейтинг: 0 / 0
23.10.2020, 09:54
    #40011098
Sadmann
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные из атрибутов xml
Сон Веры Павловны,
Спасибо!
...
Рейтинг: 0 / 0
23.10.2020, 10:04
    #40011101
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные из атрибутов xml
Сон Веры Павловны,

Да, все верно. Я просто этой темы крайний раз касался еще, емнип, аж на SQL 2005 - тогда там этого еще, кажется, не было :))
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Данные из атрибутов xml / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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