Доброго времени суток,
Решил помучать sqlxmlbulkload.
Задача следующего типа: есть таблица
есть файлик xml:
его необходимо загрузить средствами sqlxmlbulkload в виде списка строк: аля
и.т.д.
и вот здесь ступил на грабли, что-то не пойму средство загрузки не умеет дублировать строки что-ли с значениями предыдущих обработанный узлов xml
Схему нарисовал в таком виде:
Но при загрузке получаю ошибку: Shema: relationship expected on 'Details'
Я бы мог прикрутить туда связку таблицы на саму же себя, но тогда загружается несколько строк в виде:
строка 1: (есть значения до полей тега "Details" и NULL после)
строка 2: (значения null до полей тега "Details" и есть значения после)
Пошел пока гуглить, где то я видимо не дочитал факинг мануал
Решил помучать sqlxmlbulkload.
Задача следующего типа: есть таблица
CREATE TABLE tbl_test ( [rowID] INT IDENTITY(1,1), [FileName] VARCHAR(50), [File_ID] INT, [File_Version] VARCHAR(50), [Recepient] VARCHAR(50), [Record_ID] INT, [Path] VARCHAR(255) )
есть файлик xml:
<?xml version="1.0" encoding="WINDOWS-1251"?> <ROOT> <FileName>DB_01.dbf</FileName> <FileData> <ID>1</ID> <Version>4.0</Version> </FileData> <Details Recepient="test"> <Record ID="1"> <Path>C:\</Path> </Record> <Record ID="2"> <Path>C:\temp\</Path> </Record> </Details> </ROOT>
его необходимо загрузить средствами sqlxmlbulkload в виде списка строк: аля
insert into tbl_test ([FileName], [File_ID], [File_Version], [Recepient], [Record_ID], [Record_Path]) values ('DB_01.dbf', 1, '4.0', 'test', 1, 'C:\'), ('DB_01.dbf', 1, '4.0', 'test', 2, 'C:\temp')
и.т.д.
и вот здесь ступил на грабли, что-то не пойму средство загрузки не умеет дублировать строки что-ли с значениями предыдущих обработанный узлов xml
Схему нарисовал в таком виде:
<?xml version="1.0" encoding="WINDOWS-1251"?> <xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema"> <xs:element name="ROOT" sql:relation="tbl_test"> <xs:complexType> <xs:sequence> <xs:element name="FileName" sql:field="FileName"/> <xs:element name="FileData" sql:is-constant="1"> <xs:complexType> <xs:sequence> <xs:element name="ID" sql:field="File_ID"/> <xs:element name="Version" sql:field="File_Version"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Details"> <xs:complexType> <xs:sequence> <xs:element name="Record"> <xs:complexType> <xs:sequence> <xs:element name="Path" sql:field="Path"/> </xs:sequence> <xs:attribute name="ID" sql:field="Record_ID"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="Recepient" sql:field="Recepient"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Но при загрузке получаю ошибку: Shema: relationship expected on 'Details'
Я бы мог прикрутить туда связку таблицы на саму же себя, но тогда загружается несколько строк в виде:
строка 1: (есть значения до полей тега "Details" и NULL после)
строка 2: (значения null до полей тега "Details" и есть значения после)
Пошел пока гуглить, где то я видимо не дочитал факинг мануал