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 '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)
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 ....