我有一个SQL查询,可以返回n行。每行都有下面提到的示例XML。我想阅读样本计划ID&插入临时表。 请帮帮我。
请参阅下面的示例XML:
<AvailSampleUpdateRS xmlns="http://www.abcconnect.com/EQC/AR/2007/02">
<Success>
<Warning code="1011">Sample date 2016-12-30; Room Type ID 20583; Sample Plan ID 207782211; Inactive Sample Plan Updated Ref=[b44d7e4e-cf66-11e6-950b-e19b2852ebb6] </Warning>
<Warning code="1022">Sample date 2016-12-31; Room Type ID 20583; Sample Plan ID 207782211; Inactive Sample Plan Updated Ref=[b44d7e4e-cf66-11e6-950b-e19b2852ebb6] </Warning>
<Warning code="7023">Sample date 2017-01-02; Room Type ID 20583; Sample Plan ID 203619420; Inactive Sample Plan Updated Ref=[b44d7e4e-cf66-11e6-950b-e19b2852ebb6] </Warning>
<Warning code="1011">Sample date 2017-01-03; Room Type ID 20583; Sample Plan ID 203619420; Inactive Sample Plan Updated Ref=[b44d7e4e-cf66-11e6-950b-e19b2852ebb6] </Warning>
<Warning code="7025">Sample date 2017-01-04; Room Type ID 20583; Sample Plan ID 203619420; Inactive Sample Plan Updated Ref=[b44d7e4e-cf66-11e6-950b-e19b2852ebb6] </Warning>
</Success>
</AvailSampleUpdateRS>
谢谢,
答案 0 :(得分:0)
尝试以下SQL代码。 希望这能帮助你开始。
Declare @xml XML
Set @XML = '<AvailSampleUpdateRS xmlns="http://www.abcconnect.com/EQC/AR/2007/02">
<Success>
<Warning code="1011">Sample date 2016-12-30; Room Type ID 20583; Sample Plan ID 207782211; Inactive Sample Plan Updated Ref=[b44d7e4e-cf66-11e6-950b-e19b2852ebb6] </Warning>
<Warning code="1022">Sample date 2016-12-31; Room Type ID 20583; Sample Plan ID 207782211; Inactive Sample Plan Updated Ref=[b44d7e4e-cf66-11e6-950b-e19b2852ebb6] </Warning>
<Warning code="7023">Sample date 2017-01-02; Room Type ID 20583; Sample Plan ID 203619420; Inactive Sample Plan Updated Ref=[b44d7e4e-cf66-11e6-950b-e19b2852ebb6] </Warning>
<Warning code="1011">Sample date 2017-01-03; Room Type ID 20583; Sample Plan ID 203619420; Inactive Sample Plan Updated Ref=[b44d7e4e-cf66-11e6-950b-e19b2852ebb6] </Warning>
<Warning code="7025">Sample date 2017-01-04; Room Type ID 20583; Sample Plan ID 203619420; Inactive Sample Plan Updated Ref=[b44d7e4e-cf66-11e6-950b-e19b2852ebb6] </Warning>
</Success>
</AvailSampleUpdateRS>'
SELECT
x.y.value('local-name(..)', 'VARCHAR(MAX)') parentElementName,
x.y.value('local-name(.)', 'VARCHAR(MAX)') elementName,
x.y.value('.', 'VARCHAR(MAX)') elementValue
Into #Temp
FROM @xml.nodes('//*[not(*)]') AS x(y)
select SUBSTRING(SUBSTRING(elementValue, CHARINDEX('Sample Plan ID', elementValue),
CHARINDEX(';', elementValue)+1), PATINDEX('%[0-9]%',
SUBSTRING(elementValue, CHARINDEX('Sample Plan ID', elementValue), CHARINDEX(';', elementValue)+1)),
LEN(SUBSTRING(elementValue, CHARINDEX('Sample Plan ID', elementValue), CHARINDEX(';', elementValue)+1))) as SampleDataID
From #Temp