Добавление в таблицы SQL из XML | |
---|---|
tatanat Автор Сообщений: 15 Дата регистрации: 18.08.2011 |
Здравствуйте!
У меня такая проблема. Надо из XML файла, содердащего вложенные XML, переписать данные в таблицы SQL. XML: Данные файла XML нужно записать в таблицы DOP_PAC, OMS и LGOT <?xml version = "1.0" encoding="Windows-1251" standalone="yes"?> <ZGLV> <UROV1> <NZAP>1</NZAP> <UROV2> <IDZAP>1</IDZAP> <UROV3> <IDPAC>11</IDPAC> <IDPACNAME>pl1</IDPACNAME> </UROV3> <UROV3> <IDPAC>12</IDPAC> <IDPACNAME>pl2</IDPACNAME> </UROV3> </UROV2> <NZAP>2</NZAP> <UROV2> <IDZAP>11</IDZAP> <UROV3> <IDPAC>21</IDPAC> <IDPACNAME>p21</IDPACNAME> </UROV3> <UROV3> <IDPAC>22</IDPAC> <IDPACNAME>p22</IDPACNAME> </UROV3> </UROV2> </UROV1> </ZGLV> В SQL запись в три таблицы: поля 1 таблицы - NZAP поля 2 таблицы - NZAP, IDZAP поля 3 таблицы - NZAP, IDZAP, IDPAC, IDPACNAME Через OPENXML для 1 и 2 таблицы все выходит. А вот для третьей не могу вытащить поле NZAP с первого уровня (UROV1). Получаю исключительно NULL. Если кто-нибудь уже решал такую задачу, пожалуйста, подскажите. |
Re: Добавление в таблицы SQL из XML | |
---|---|
tatanat Автор Сообщений: 15 Дата регистрации: 18.08.2011 |
Нашлось решение:
DECLARE @idoc int, @doc varchar(1000); SET @doc =' <?xml version = "1.0" encoding="Windows-1251" standalone="yes"?> <ZGLV> <UROV1> <NZAP>1</NZAP> <UROV2> <IDZAP>1</IDZAP> <UROV3> <IDPAC>11</IDPAC> <IDPACNAME>pl1</IDPACNAME> </UROV3> <UROV3> <IDPAC>12</IDPAC> <IDPACNAME>pl2</IDPACNAME> </UROV3> </UROV2> <NZAP>2</NZAP> <UROV2> <IDZAP>11</IDZAP> <UROV3> <IDPAC>21</IDPAC> <IDPACNAME>p21</IDPACNAME> </UROV3> <UROV3> <IDPAC>22</IDPAC> <IDPACNAME>p22</IDPACNAME> </UROV3> </UROV2> </UROV1> </ZGLV> ' EXEC sp_xml_preparedocument @idoc OUTPUT, @doc; SELECT * FROM OPENXML (@idoc, '/ZGLV/UROV1/UROV2/UROV3', 3) WITH ( NZAP int '../../NZAP', IDZAP int '../IDZAP', IDPAC int 'IDPAC', IDPACNAME varchar(10) 'IDPACNAME') |
© 2000-2024 Fox Club  |