Jaký atribut nebo prvek chcete extrahovat z <Location>
uzly?? Nelze převést celý uzel XML na bigint
(jak se váš dotaz pokouší udělat....)
Zkoušíte extrahovat <Location LaborHours="1.0">
hodnotu??
Pak potřebujete:
;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)
Za prvé:protože jich je více <Location>
uzly ve vašem XML, musíte použít CROSS APPLY
a .nodes()
získat všechny <Location>
xml uzly.
Za druhé, protože chcete načíst atribut LaborHours
(můj předpoklad), musíte použít .value('@LaborHours
).
A konečně, protože tyto hodnoty jsou 1.0
nebo 2.5
, musíte použít decimal
(s náležitou přesností a měřítkem), abyste získali tyto hodnoty – nikoli bigint
....