Я хочу извлечь сложные данные XML на сервер SQL.Уже попробовал пакет SSIS безуспешно.Что я могу изменить в своем коде на желаемый вывод
Я пробовал ниже T-SQL
DECLARE @xmlData XML
SET @xmlData = (
SELECT CONVERT(XML, BulkColumn) AS BulkColumn
FROM OPENROWSET(BULK 'C:..\NewTextDocument.xml', SINGLE_BLOB) as x
)
SELECT
ref.value('FilterID[1]', 'int') AS FilterID ,
ref.value('Name[1]', 'NVARCHAR (255)') AS Name ,
ref.value('Code[1]', 'NVARCHAR (255)') AS Code ,
ref.value('Department[1]', 'NVARCHAR (255)') AS Department
FROM @xmlData.nodes('DataSet/Export/Test')
xmlData( ref )
Мой XML имеет формат ниже
<?xml version="1.0" encoding="ISO-8859-1"?>
<DataSet>
<xs:schema id="Export" xmlns:msdata="urn:schemas-microsoft-com:xml-
msdata" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="">
<xs:element msdata:Locale="" msdata:IsDataSet="true" name="Export">
<xs:complexType>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="Test">
<xs:complexType>
<xs:sequence>
<xs:element name="FilterID" minOccurs="0" type="xs:int"/>
<xs:element name="Name" minOccurs="0" type="xs:string"/>
<xs:element name="Code" minOccurs="0" type="xs:string"/>
<xs:element name="Department" minOccurs="0" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<Export>
<Test diffgr:id="Test1" msdata:rowOrder="0">
<FilterID>1</FilterID>
<Name>John</Name>
<Code>123</Code>
<Department>Science</Department>
</Test>
<Test diffgr:id="Test2" msdata:rowOrder="1">
<FilterID>2</FilterID>
<Name>Jay</Name>
<Code>321</Code>
<Department>Maths</Department>
</Test>
</Export>
Ожидаемый вывод
FilterID | Name | Code | Department
------------------------------------
1 | John | 123 | Science
2 | Jay | 321 | Maths