Я пытаюсь импортировать данные из файла XML в таблицу SQL Server. Тем не менее я получаю сообщение об ошибке:
Преобразование не удалось при преобразовании из символьной строки в уникальный идентификатор
Он говорит, что он находится в состоянии 2 строки 6 (Id3), но я предполагаю, что преобразование не выполняется в других местах.
XML:
<ImportExportObject>
<Objects>
<MyObject>
<Id>123e5c8c-a7fc-40da-440e-12348bc612e8</Id>
<Id2>123e5c8c-a7fc-40da-440e-12348bc612e8</Id2>
<Name>en</Name>
<Id3>123e5c8c-a7fc-40da-440e-12348bc612e8</Id3>
</MyObject>
</Objects>
</ImportExportObject>
SQL код:
INSERT INTO MyTable(ID, Id2, Name, Id3)
SELECT
MyXMLDocument.query('Id').value('.', 'uniqueidentifier'),
MyXMLDocument.query('Id2').value('.', 'uniqueidentifier'),
MyXMLDocument.query('Name').value('.', 'NVARCHAR(50)'),
MyXMLDocument.query('Id3').value('.', 'uniqueidentifier'),
FROM (SELECT CAST(MyXMLDocument AS xml)
FROM OPENROWSET(BULK 'C:\Users\myUser\Documents\MyXMLDocument.xml', SINGLE_BLOB) AS T(MyXMLDocument)) AS T(MyXMLDocument)
CROSS APPLY MyXMLDocument.nodes('ImportExportObject/Objects/MyObject') AS MyXMLDocument (MyObject);
Как мне устранить эту ошибку?
Мне не удалось заставить работать Select Cast и Convert - и .value () требует строковых литералов, поэтому '@ Id ', кажется, не работает.
Совершенно неуверенно здесь - любая помощь очень ценится!