¿Qué atributo o elemento desea extraer del <Location>
nodos?? No puede convertir todo el nodo XML en un bigint
(como intenta hacer su consulta...)
¿Intenta extraer el <Location LaborHours="1.0">
valor??
Entonces necesitas:
;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)
En primer lugar:dado que hay múltiples <Location>
nodos en su XML, debe usar CROSS APPLY
y el .nodes()
función para obtener todos los <Location>
nodos xml.
En segundo lugar, dado que desea recuperar el atributo LaborHours
(mi suposición), debe usar .value('@LaborHours
)` enfoque.
Y por último, dado que esos valores son 1.0
o 2.5
, debe usar decimal
(con la precisión y la escala adecuadas) para obtener esos valores, no bigint
....