У меня есть таблица с переменной XML. Не удалось понять, как извлечь эти данные непосредственно из переменной столбца в таблице базы данных. Приведенный ниже код дает результат, который мне нужен, если я использую оператор объявления и установки с xml фрагментом
declare @CreditScoreXML xml set @CreditScoreXML=
'<ncf_report xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://cp.com/rules/client">
<admin> EXCUDING REMAINING 10K lINES OF XML FRAGMENT
;WITH XMLNAMESPACES ('http://cp.com/rules/client' as ns1)
SELECT
@CreditScoreXML.value('(ns1:ncf_report/ns1:admin/ns1:product_reference)[1]', 'varchar(10)') as Ref_Number
,@CreditScoreXML.value('(ns1:ncf_report/ns1:report/ns1:summary/ns1:account_status_counters/ns1:account[@type="current" and @status ="1"]/@description)[1]', 'varchar(50)') as CurrentDescription
,@CreditScoreXML.value('(ns1:ncf_report/ns1:report/ns1:summary/ns1:account_status_counters/ns1:account[@type="current" and @status ="1"])[1]', 'int') as CurrentStatus
Не удается найти столбец CreditScore XML или функцию, определяемую пользователем или агрегатное имя неоднозначно, когда я запускаю это. Любая высоко ценимая помощь застряла на этом, кажется, на вечность.
;WITH XMLNAMESPACES ('http://www.w3.org/2001/XMLSchema-instance' as ns1)
SELECT
CreditScoreXML.value('(ns1:ncf_report/ns1:admin/ns1:product_reference)[1]', 'varchar(10)') as Ref_Number
,CreditScoreXML.value('(ns1:ncf_report/ns1:report/ns1:summary/ns1:account_status_counters/ns1:account[@type="current" and @status ="1"]/@description)[1]', 'varchar(50)') as CurrentDescription_1
,CreditScoreXML.value('(ns1:ncf_report/ns1:report/ns1:summary/ns1:account_status_counters/ns1:account[@type="current" and @status ="1"])[1]', 'int') as CurrentStatus_1
FROM Database.dbo.CreditData