Я импортировал XML-файл в базу данных и хочу прочитать его с разбором полей. Но я делаю что-то не так, потому что выходные поля являются нулевыми.
это файл XML:
<Messages>
<Message xmlns="urn:xsd:messaging">
<Identifier>
<SUmid>34F166fjD90</SUmid>
<PassiveLockToken>9REU+IMkCqM=</PassiveLockToken>
<TableId>200936</TableId>
<ArchiveName>sd618</ArchiveName>
</Identifier>
<ValidationRequested>MAXIMUM</ValidationRequested>
<ValidationPassed>MAXIMUM</ValidationPassed>
<Class>NORMAL</Class>
<TextReadonly>false</TextReadonly>
<DeleteInhibited>false</DeleteInhibited>
<TextModified>false</TextModified>
<Partial>false</Partial>
<Status>COMPLETED</Status>
<Instance>
<Identifier>
<SUmid>34F166fjD90</SUmid>
<Number>0</Number>
</Identifier>
<Type>ORIGINAL</Type>
<NotificationType>NONE</NotificationType>
<Status>COMPLETED</Status>
<RelatedNumber>0</RelatedNumber>
<AppendixSequenceNumber>0</AppendixSequenceNumber>
<UnitName>ETHNALTX</UnitName>
<MpfnName>mpa</MpfnName>
<ProcessState>0</ProcessState>
<LastMpfnResult>SUCCESS</LastMpfnResult>
<RelativeReference>0</RelativeReference>
<Priority>7</Priority>
<DeferredTime>2001-12-13T22:41:36.000+02:00</DeferredTime
</Message>
- здесь я выбрал только некоторые поля, например, но все поля XML должныбыть прочитанным -
USE OPENXMLTesting
GO
DECLARE @XML AS XML, @hDoc AS INT, @SQL NVARCHAR (MAX)
SELECT @XML = XMLData FROM XMLwithOpenXML
EXEC sp_xml_preparedocument @hDoc OUTPUT, @XML
SELECT Identifier,
SUmid,
PassiveLockToken
FROM OPENXML (@hDoc, 'Messages')
WITH
(
Identifier varchar(50) 'Messages/Message/Identifier',
SUmid [varchar](50) 'Messages/Message/Identifier/@SUmid',
PassiveLockToken [varchar](100) 'Messages/Message/Identifier/@PassiveLockToken'
)
EXEC sp_xml_removedocument @hDoc
GO