Quale attributo o elemento vuoi estrarre da <Location>
nodi?? Non puoi convertire l'intero nodo XML in un bigint
(come tenta di fare la tua richiesta....)
Provi ad estrarre il <Location LaborHours="1.0">
valore??
Allora hai bisogno di:
;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)
Innanzitutto:poiché ce ne sono più <Location>
nodi nel tuo XML, devi usare CROSS APPLY
e il .nodes()
funzione per ottenere tutto il <Location>
nodi xml.
In secondo luogo, poiché desideri recuperare l'attributo LaborHours
(la mia ipotesi), è necessario utilizzare il .value('@LaborHours
)` approccio.
E infine, poiché quei valori sono 1.0
o 2.5
, devi utilizzare decimal
(con precisione e scala adeguate) per ottenere quei valori, non bigint
....