Jaki atrybut lub element chcesz wyodrębnić z
węzły? Nie możesz przekonwertować całego węzła XML na bigint
(w miarę jak twoje zapytanie próbuje to zrobić...)
Czy próbujesz wyodrębnić
wartość??
Następnie potrzebujesz:
;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)
Po pierwsze:ponieważ istnieje wiele CROSS APPLY
i .nodes()
funkcja, aby uzyskać wszystkie
Po drugie, ponieważ chcesz pobrać atrybut Godziny pracy
(moje założenie), musisz użyć .value('@LaborHours
)` podejście.
I na koniec, ponieważ te wartości to 1.0
lub 2.5
, musisz użyć dziesiętnie
(z odpowiednią precyzją i skalą), aby uzyskać te wartości - nie bigint
....