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

Откуда: СПб
Сообщений: 6
Всем привет!
Имеется простенький xml.
Через openxml получаю таблицу с нужными значениями из атрибутов и элементов
Как сделать, чтобы вместо текста или пустого значения [value] получать null, а числовые значения привести к float чтобы в дальнейшем их сложить?

DECLARE @idoc int
DECLARE @doc varchar(2000)

SET @doc ='
<root>
<column name="name1">
<type>test</type>
<value>5</value>
</column>
<column name="name2">
<type>test</type>
<value>7</value>
</column>
<column name="name1">
<type/>
<value>77</value>
</column>
<column name="name3">
<type/>
<value>102</value>
</column>
<column name="name">
<type>test1</type>
<value>45</value>
</column>
<column name="name1">
<type>test</type>
<value>56.1</value>
</column>
<column name="">
<type>test2</type>
<value>error</value>
</column>
<column name="">
<type></type>
<value></value>
</column>
<column name="name8">
<type>test</type>
<value></value>
</column>
<column name="name7">
<type>test1</type>
<value>12.43</value>
</column>
</root>'


EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

SELECT *

FROM OPENXML (@idoc, '/root/column', 2) WITH
(
column_name char (5) '@name',
[type] char (5)'./type',
[value] char(5) './value'

)

EXEC sp_xml_removedocument @idoc
28 ноя 13, 11:09    [15204100]     Ответить | Цитировать Сообщить модератору
 Re: Разбор простого xml  [new]
Zlodey_gtn
Member

Откуда: СПб
Сообщений: 6
Как можно подать на вход этот xml, например чтобы он в виде текстового файла лежал где-нибудь на диске?
28 ноя 13, 11:19    [15204205]     Ответить | Цитировать Сообщить модератору
 Re: Разбор простого xml  [new]
Glory
Member

Откуда:
Сообщений: 104751
Zlodey_gtn
Как можно подать на вход

На вход чего ?
28 ноя 13, 11:22    [15204234]     Ответить | Цитировать Сообщить модератору
 Re: Разбор простого xml  [new]
Zlodey_gtn
Member

Откуда: СПб
Сообщений: 6
Glory,

На вход sql.
Чтобы xml лежал в виде тесктового файла, например, на физическом диске
т.е. чтобы в хранимой процедуре указывать путь к файлу с xml
28 ноя 13, 11:57    [15204605]     Ответить | Цитировать Сообщить модератору
 Re: Разбор простого xml  [new]
Glory
Member

Откуда:
Сообщений: 104751
Zlodey_gtn
На вход sql.

У sql нет "входа"

Zlodey_gtn
Чтобы xml лежал в виде тесктового файла, например, на физическом диске
т.е. чтобы в хранимой процедуре указывать путь к файлу с xml

Сначала придется загрузить файл - в таблицу или переменную.
Но вы лучше изучите http://technet.microsoft.com/en-us/library/ms171993.aspx
28 ноя 13, 12:04    [15204678]     Ответить | Цитировать Сообщить модератору
 Re: Разбор простого xml  [new]
Zlodey_gtn
Member

Откуда: СПб
Сообщений: 6
Glory,
что можно сделать с основным запросом?
28 ноя 13, 12:13    [15204774]     Ответить | Цитировать Сообщить модератору
 Re: Разбор простого xml  [new]
Glory
Member

Откуда:
Сообщений: 104751
Zlodey_gtn
что можно сделать с основным запросом?

Прверять, подменять и конвертировать
28 ноя 13, 12:18    [15204836]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить