Синтаксический анализ XML SQL и составление таблицы
Ниже приведен код
Я уже проанализировал его в SQL
TimePeriod |AmountType| Сумма| TimePeriod |PlanDescription |ServiceTypesCode |ServiceTypesName |inPlanNetwork coverageLevel
calendar_year |франшиза| 3000 | calendar_year |OPTIONS PPO |30 |health_benefit_plan_coverage |No - применяется к поставщикам услуг вне сети
Но я хочу создать таблицу и сложить их в таблицу, например сделать поле вызова time period, amounttype, Amount
промежуток времени количество amountType planDescription типов служб inPlanNetwork
calendar_year франшиза 3000 опций PPO health_benefit_plan_coverage , 30 No - применяется к поставщикам услуг вне сети
оставшаяся франшиза 0 вариантов PPO health_benefit_plan_coverage , 30 да - применяется к сетевым провайдерам
оставшаяся франшиза 1500 опций PPO health_benefit_plan_coverage , 30 No - применяется к поставщикам услуг вне сети
XML:
<deductibles> <eligibilityDate /> <insuranceType /> <timeperiod>calendar_year <amounttype>Deductible <amount> <amount>3000 <currency>USD <delivery /> <plandescription>OPTIONS PPO <description /> <messages /> <servicetypes> <name>health_benefit_plan_coverage <codex12>30 <procedureId /> <procedureIdScope /> <coverageLevel /> <inplannetwork>No - Applies to out of network providers <deductibles> <eligibilityDate /> <insuranceType /> <timeperiod>remaining <amounttype>Deductible <amount> <amount>0 <currency>USD <delivery /> <plandescription>OPTIONS PPO <description /> <messages /> <servicetypes> <name>health_benefit_plan_coverage <codex12>30 <procedureId /> <procedureIdScope /> <coverageLevel /> <inplannetwork>Yes - Applies to in network providers <deductibles> <eligibilityDate /> <insuranceType /> <timeperiod>remaining <amounttype>Deductible <amount> <amount>1500 <currency>USD <delivery /> <plandescription>OPTIONS PPO <description /> <messages /> <servicetypes> <name>health_benefit_plan_coverage <codex12>30 <procedureId /> <procedureIdScope /> <coverageLevel /> <inplannetwork>Нет - применяется к поставщикам услуг вне сети
Что я уже пробовал:
declare @response nvarchar(max) declare @responseXML XML BEGIN TRY SELECT @responseXML = (select [responseXML] from TABLE where id = 1) END TRY BEGIN CATCH SELECT ERROR_MESSAGE() END CATCH select X.Node.query('./child::node()') As FileList, X.Node.value('Response[1]/coverage[1]/deductibles[1]/timePeriod[1]','VARCHAR(MAX)') as TimePeriod, X.Node.value('Response[1]/coverage[1]/deductibles[1]/amountType[1]','VARCHAR(MAX)') as AmountType, X.Node.value('Response[1]/coverage[1]/deductibles[1]/amount[1]/amount[1]','VARCHAR(MAX)') as Amount, X.Node.value('Response[1]/coverage[1]/deductibles[1]/timePeriod[1]','VARCHAR(MAX)') as TimePeriod, X.Node.value('Response[1]/coverage[1]/deductibles[1]/planDescription[1]','VARCHAR(MAX)') as PlanDescription, X.Node.value('Response[1]/coverage[1]/deductibles[1]/serviceTypes[1]/codeX12[1]','VARCHAR(MAX)') as ServiceTypesCode, X.Node.value('Response[1]/coverage[1]/deductibles[1]/serviceTypes[1]/name[1]','VARCHAR(MAX)') as ServiceTypesName, X.Node.value('Response[1]/coverage[1]/deductibles[1]/inPlanNetwork[1]','VARCHAR(MAX)') as inPlanNetwork, X.Node.value('Response[1]/coverage[1]/deductibles[1]/coverageLevel[1]','VARCHAR(MAX)') as coverageLevel FROM @responseXML.nodes('Root') X(Node)
pradiprenushe
Вы хотите вставить ответ select query в таблицу?