Я пытаюсь проанализировать XML из столбца, чтобы добавить его в представление для отчетов, но я не знаю пространства имен.Это может быть сложнее, потому что поля в XML создаются только после того, как поле используется в базовом приложении.Таблица pfm.Entity, из которой я пытаюсь проанализировать XML из столбца Custom #, структурирована со следующими столбцами:
[RootId#] ,[Id#] ,[LastId#] ,[Guid#] ,[Custom#] ,[Type#]
Моя цель состоит в том, чтобы разобрать XML, содержащийся в Custom #, в столбцы так, чтобыЯ могу присоединиться к таблице вместе с другими в поле RootId #.Ниже приведен оператор выбора, с которым я тестирую:
WITH XMLNAMESPACES ('http://www.w3.org/2001/XMLSchema' as ns)
SELECT TOP (1000)
Custom#.value('(/ns:Fields/ns:Field)[1]', 'VARCHAR(50)') AS xmlfield
FROM
[SelectDb].[pfm].[Entity]
Я предполагаю, что мне нужно будет выбрать что-то вроде ниже, но это приводит к ошибке на символе #.
SELECT
Custom#.value('(/ns:Fields/ns:MarketingSrcPercentage_901419#)[1]', 'VARCHAR(50)') AS mktsrcp
Ниже приведены два примера того, как может выглядеть XML в поле.Имейте в виду, что есть строки, в которых это значение также равно NULL.
<Fields>
<Field name="PurchaseDate_NJ#">6/11/2018</Field>
<Field name="AddOrImpDate_NJ#">8/1/2018</Field>
<Field name="AffidavitAddOrExcep_NJ#">nfui fevtt[th40thijfkrkl grwgr ijg rgmrk gmkmr pkgi</Field>
<Field name="DateOfPropertyAcquisition_DC#">8/7/2018</Field>
<Field name="AuthorizedAppointedAgent_PA#">NAME OF PERSON AUTHORIZED/APPONTED AGENT PROMPT BOX</Field>
<Field name="SpouseWaivingMaritalRights_PA#">NAME OF SPOUSE WAIVING MARTIAL RIGHTS PROMPT BOX</Field>
<Field name="PersonalFunds_TXFA#">true</Field>
<Field name="Currency_TXFA#">true</Field>
<Field name="CashiersCheck_TXFA#">true</Field>
<Field name="TravelersCheck_TXFA#">true</Field>
<Field name="MoneyOrder_TXFA#">true</Field>
<Field name="BusinessCheck_TXFA#">true</Field>
<Field name="PersonalCheck_TXFA#">true</Field>
<Field name="BankruptcyFilings_NY#">true</Field>
</Fields>
и
<Fields>
<Field name="">1</Field>
<Field name="MarketingSrcPercentage_901419#">1</Field>
<Field name="MarketingRep1Name_901419#">Brian</Field>
</Fields>
В случае, если это полезно, это база данных для SoftPro Select.Я просмотрел их документацию, но ничего не нашел.
РЕДАКТИРОВАТЬ: Добавлено в более четкое определение исходной таблицы.