Welk attribuut of element wil je extraheren uit de <Location> knooppunten?? U kunt niet het hele XML-knooppunt converteren naar een bigint (zoals uw vraag probeert te doen....)
Probeert u de <Location LaborHours="1.0"> . te extraheren waarde??
Dan heb je nodig:
;WITH XMLNAMESPACES(DEFAULT 'https://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)
Allereerst:aangezien er meerdere . zijn <Location> knooppunten in uw XML, moet u CROSS APPLY . gebruiken en de .nodes() functie om alle <Location> . te krijgen xml-knooppunten.
Ten tweede, omdat u het attribuut . wilt ophalen LaborHours (mijn aanname), je moet de .value('@LaborHours . gebruiken) )` benadering.
En als laatste, aangezien die waarden 1.0 zijn of 2.5 , moet u decimal . gebruiken (met de juiste precisie en schaal) om die waarden te krijgen - niet bigint ....