Какъв атрибут или елемент искате да извлечете от
възли?? Не можете да конвертирате целия XML възел в bigint
(както се опитва да направи вашата заявка....)
Опитвате ли се да извлечете
стойност??
Тогава имате нужда от:
;WITH XMLNAMESPACES(DEFAULT 'http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions')
SELECT
XC.value('@LaborHours', 'decimal(18,4)')
FROM
Production.ProductModel
CROSS APPLY
Instructions.nodes('/root/Location') AS XT(XC)
Първо:тъй като има много <Местоположение>код> възли във вашия XML, трябва да използвате
CROSS APPLY
и .nodes()
функция за получаване на всички
xml възли.
Второ, тъй като искате да извлечете атрибута Работни часове
(мое предположение), трябва да използвате .value('@LaborHours
)` подход.
И накрая, тъй като тези стойности са 1.0
или 2.5
, трябва да използвате decimal
(с подходяща точност и мащаб), за да получите тези стойности - не bigint
...