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

Откуда: Владивосток
Сообщений: 132
Никак не могу разобраться с пространствами имен...

<?xml version="1.0" encoding="UTF-8"?>
<v8e:EventLog xmlns:v8e="http://v8.1c.ru/eventLog" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <v8e:Event>
            <v8e:Level>Information</v8e:Level>
            <v8e:Date>2013-12-01T08:00:19</v8e:Date>
            <v8e:ApplicationName>BackgroundJob</v8e:ApplicationName>
            <v8e:ApplicationPresentation>Фоновое задание</v8e:ApplicationPresentation>
            <v8e:Event>_$Session$_.Start</v8e:Event>
            <v8e:EventPresentation>Сеанс. Начало</v8e:EventPresentation>
            <v8e:User>071523a4-516f-4fce-ba4b-0d11ab7a1893</v8e:User>
            <v8e:UserName/>
            <v8e:Computer/>
            <v8e:Metadata/>
            <v8e:MetadataPresentation/>
            <v8e:Comment/>
            <v8e:Data xsi:nil="true"/>
            <v8e:DataPresentation/>
            <v8e:TransactionStatus>NotApplicable</v8e:TransactionStatus>
            <v8e:TransactionID/>
            <v8e:Connection>160269</v8e:Connection>
            <v8e:Session>3889</v8e:Session>
            <v8e:ServerName>NSK-1C</v8e:ServerName>
            <v8e:Port>1562</v8e:Port>
            <v8e:SyncPort>1562</v8e:SyncPort>
      </v8e:Event>
</v8e:EventLog>
2 апр 14, 08:37    [15819452]     Ответить | Цитировать Сообщить модератору
 Re: помогите с загрузкой xml файла в базу.  [new]
Кавказ-сила
Member

Откуда: Москва
Сообщений: 261
declare @x xml = 
'<?xml version="1.0" encoding="UTF-8"?>
<v8e:EventLog xmlns:v8e="http://v8.1c.ru/eventLog" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <v8e:Event>
            <v8e:Level>Information</v8e:Level>
            <v8e:Date>2013-12-01T08:00:19</v8e:Date>
            <v8e:ApplicationName>BackgroundJob</v8e:ApplicationName>
            <v8e:ApplicationPresentation>Фоновое задание</v8e:ApplicationPresentation>
            <v8e:Event>_$Session$_.Start</v8e:Event>
            <v8e:EventPresentation>Сеанс. Начало</v8e:EventPresentation>
            <v8e:User>071523a4-516f-4fce-ba4b-0d11ab7a1893</v8e:User>
            <v8e:UserName/>
            <v8e:Computer/>
            <v8e:Metadata/>
            <v8e:MetadataPresentation/>
            <v8e:Comment/>
            <v8e:Data xsi:nil="true"/>
            <v8e:DataPresentation/>
            <v8e:TransactionStatus>NotApplicable</v8e:TransactionStatus>
            <v8e:TransactionID/>
            <v8e:Connection>160269</v8e:Connection>
            <v8e:Session>3889</v8e:Session>
            <v8e:ServerName>NSK-1C</v8e:ServerName>
            <v8e:Port>1562</v8e:Port>
            <v8e:SyncPort>1562</v8e:SyncPort>
      </v8e:Event>
</v8e:EventLog>'

;with xmlnamespaces('http://v8.1c.ru/eventLog' AS v8e)
select n.value('(v8e:ApplicationName/text())[1]', 'nvarchar(100)')
  from @x.nodes('v8e:EventLog/v8e:Event') t(n)
2 апр 14, 09:45    [15819643]     Ответить | Цитировать Сообщить модератору
 Re: помогите с загрузкой xml файла в базу.  [new]
deadok
Member

Откуда:
Сообщений: 86
ughunter, а такой вариант подойдет?
Declare @i_XML XML
SET @i_XML = '<v8e:EventLog xmlns:v8e="http://v8.1c.ru/eventLog" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <v8e:Event>
            <v8e:Level>Information</v8e:Level>
            <v8e:Date>2013-12-01T08:00:19</v8e:Date>
            <v8e:ApplicationName>BackgroundJob</v8e:ApplicationName>
            <v8e:ApplicationPresentation>Фоновое задание</v8e:ApplicationPresentation>
            <v8e:Event>_$Session$_.Start</v8e:Event>
            <v8e:EventPresentation>Сеанс. Начало</v8e:EventPresentation>
            <v8e:User>071523a4-516f-4fce-ba4b-0d11ab7a1893</v8e:User>
            <v8e:UserName/>
            <v8e:Computer/>
            <v8e:Metadata/>
            <v8e:MetadataPresentation/>
            <v8e:Comment/>
            <v8e:Data xsi:nil="true"/>
            <v8e:DataPresentation/>
            <v8e:TransactionStatus>NotApplicable</v8e:TransactionStatus>
            <v8e:TransactionID/>
            <v8e:Connection>160269</v8e:Connection>
            <v8e:Session>3889</v8e:Session>
            <v8e:ServerName>NSK-1C</v8e:ServerName>
            <v8e:Port>1562</v8e:Port>
            <v8e:SyncPort>1562</v8e:SyncPort>
      </v8e:Event>
</v8e:EventLog>
'

SELECT
Level = c.value('(*:Level)[1][not(@xsi:nil)]','nvarchar(50)')	  
, date = c.value('(*:Date)[1][not(@xsi:nil)]','datetime')	
, ApplicationName = c.value('(*:ApplicationName)[1][not(@xsi:nil)]','nvarchar(50)')	 
, ApplicationPresentation = c.value('(*:ApplicationPresentation)[1][not(@xsi:nil)]','nvarchar(50)')
....
	
	FROM @i_Xml.nodes('//*:Event')	t(c)
2 апр 14, 09:52    [15819661]     Ответить | Цитировать Сообщить модератору
 Re: помогите с загрузкой xml файла в базу.  [new]
deadok
Member

Откуда:
Сообщений: 86
блин пока писал Кавказ-сила уже все запостил:)
2 апр 14, 09:53    [15819665]     Ответить | Цитировать Сообщить модератору
 Re: помогите с загрузкой xml файла в базу.  [new]
ughunter
Member

Откуда: Владивосток
Сообщений: 132
пойдет канеш... xml только в файле ((
2 апр 14, 10:20    [15819768]     Ответить | Цитировать Сообщить модератору
 Re: помогите с загрузкой xml файла в базу.  [new]
invm
Member

Откуда: Москва
Сообщений: 9400
1.
declare @x xml;

select
 @x = BulkColumn
from
 openrowset(bulk 'файл', single_blob) x;

2. http://technet.microsoft.com/ru-ru/library/ms171993.aspx
2 апр 14, 10:42    [15819881]     Ответить | Цитировать Сообщить модератору
 Re: помогите с загрузкой xml файла в базу.  [new]
nizamovich
Member

Откуда: Москва
Сообщений: 116
есть ли какой нибудь обходной путь (не редактируя исходный файл), если есть спецсимвол (шестнадцатеричный символ) типа
&#x16;

и падает загрузка ?
2 апр 14, 11:11    [15820024]     Ответить | Цитировать Сообщить модератору
 Re: помогите с загрузкой xml файла в базу.  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Какой ещё такой спецсимвол? Вы стандарт по XML хоть открывали? Нет там никаких "спецсимволов" и не должно быть, а такая информация кодируется специальным сочетанием оговоренных символов.
2 апр 14, 11:36    [15820161]     Ответить | Цитировать Сообщить модератору
 Re: помогите с загрузкой xml файла в базу.  [new]
ughunter
Member

Откуда: Владивосток
Сообщений: 132
deadok, только почему-то через одну строку все поля равны NULL
2 апр 14, 11:45    [15820218]     Ответить | Цитировать Сообщить модератору
 Re: помогите с загрузкой xml файла в базу.  [new]
Кавказ-сила
Member

Откуда: Москва
Сообщений: 261
http://stackoverflow.com/questions/15995480/illegal-xml-character-on-sql-insert
2 апр 14, 11:47    [15820236]     Ответить | Цитировать Сообщить модератору
 Re: помогите с загрузкой xml файла в базу.  [new]
nizamovich
Member

Откуда: Москва
Сообщений: 116
tpg, спасибо

Кавказ-сила, то что нужно , спасибо !
2 апр 14, 13:14    [15821009]     Ответить | Цитировать Сообщить модератору
 Re: помогите с загрузкой xml файла в базу.  [new]
ughunter
Member

Откуда: Владивосток
Сообщений: 132
Information 2013-12-01 08:00:19.000 BackgroundJob Фоновое задание _$Session$_.Start Сеанс. Начало 071523a4-516f-4fce-ba4b-0d11ab7a1893 NULL NotApplicable 160269 3889 NSK-1C 1562 1562
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
Information 2013-12-01 08:00:19.000 BackgroundJob Фоновое задание _$Session$_.Start Сеанс. Начало 071523a4-516f-4fce-ba4b-0d11ab7a1893 NULL NotApplicable 160269 3889 NSK-1C 1562 1562
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
3 апр 14, 08:11    [15824999]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить