oracle查询中XML文件的解析
我的XML文件看起来像oracle查询中XML文件的解析,xml,oracle,Xml,Oracle,我的XML文件看起来像 <results> <data><SearchIdType>HIST_ID</SearchIdType><SearchIdValue>3849183</SearchIdValue><ErrorCd>0</ErrorCd><SearchPayDate>2014-09-29T00:00:00Z</SearchPayDate><Searc hTxTime
<results>
<data><SearchIdType>HIST_ID</SearchIdType><SearchIdValue>3849183</SearchIdValue><ErrorCd>0</ErrorCd><SearchPayDate>2014-09-29T00:00:00Z</SearchPayDate><Searc
hTxTimestamp>2015-04-17T21:43:40.231Z</SearchTxTimestamp><ValidDate>2014-09-29T00:00:00Z</ValidDate><BondRuid>49223518</BondRuid><ProductClassificationType>I
ssue Type</ProductClassificationType><BondName>JPM 6.7 04/02/40</BondName><BaseCurrencyCode>USD</BaseCurrencyCode><IssueDate>2010-04-01T00:00:00Z</IssueDate>
<Rule144Indicator>N</Rule144Indicator><RegulationsIndicator>N</RegulationsIndicator><PrivatePlacementIndicator>N</PrivatePlacementIndicator><DtcEligibleIndic
ator>Y</DtcEligibleIndicator><DualCurrencyIndicator>N</DualCurrencyIndicator><SeniorRankIndicator>N</SeniorRankIndicator><JuniorRankIndicator>Y</JuniorRankIn
dicator><PerpetualMaturityIndicator>N</PerpetualMaturityIndicator><IssueAmount>60000000</IssueAmount><IssuePriceAmount>25</IssuePriceAmount><IssueOutstanding
Amount>60000000</IssueOutstandingAmount><SeriesDescription></SeriesDescription><MarketSectorCode>Pfd</MarketSectorCode><MininitialPurchaseNumber>25</Mininiti
alPurchaseNumber><MinIncrPurchaseNumber>25</MinIncrPurchaseNumber><CallableIndicator>Y</CallableIndicator><CalledDate></CalledDate><CalledPriceAmount></Calle
dPriceAmount><NextCallDate>2015-04-02T00:00:00Z</NextCallDate><NextCallPriceAmount>25</NextCallPriceAmount><NextParCallDate>2015-04-02T00:00:00Z</NextParCall
Date><MakeWholeCallIndicator>N</MakeWholeCallIndicator><SoftCallIndicator>N</SoftCallIndicator><FirstCallDate>2015-04-02T00:00:00Z</FirstCallDate><NextRefund
Date></NextRefundDate><PartialCallTypeCode></PartialCallTypeCode><PutableIndicator>N</PutableIndicator><NextPutDate></NextPutDate><NextParPutDate></NextParPu
tDate><NextPutPriceAmount></NextPutPriceAmount><FactorableIndicator>N</FactorableIndicator><NextFactorDate></NextFactorDate><PreviousReportedFactorRate>1</Pr
eviousReportedFactorRate><AnnounceDate>2010-03-25T00:00:00Z</AnnounceDate><FirstSettleDate>2010-04-01T00:00:00Z</FirstSettleDate><MaturityDate>2040-04-02T00:
00:00Z</MaturityDate><FinalMaturityDate>2040-04-02T00:00:00Z</FinalMaturityDate><BbgCalculationMaturityDate>2040-04-02T00:00:00Z</BbgCalculationMaturityDate>
</results>
第2行结束于:2015-04-17T21:43:40.231Z
如何查询以解析此类xml?如果您正确格式化了xml,您会很快发现问题在于您遗漏了结束数据标记:
<results>
<data>
<SearchIdType>HIST_ID</SearchIdType>
<SearchIdValue>3849183</SearchIdValue>
<ErrorCd>0</ErrorCd>
<SearchPayDate>2014-09-29T00:00:00Z</SearchPayDate>
<SearchTxTimestamp>2015-04-17T21:43:40.231Z</SearchTxTimestamp>
<ValidDate>2014-09-29T00:00:00Z</ValidDate>
<BondRuid>49223518</BondRuid>
<ProductClassificationType>Issue Type</ProductClassificationType>
<BondName>JPM 6.7 04/02/40</BondName>
<BaseCurrencyCode>USD</BaseCurrencyCode>
<IssueDate>2010-04-01T00:00:00Z</IssueDate>
<Rule144Indicator>N</Rule144Indicator>
<RegulationsIndicator>N</RegulationsIndicator>
<PrivatePlacementIndicator>N</PrivatePlacementIndicator>
<DtcEligibleIndicator>Y</DtcEligibleIndicator>
<DualCurrencyIndicator>N</DualCurrencyIndicator>
<SeniorRankIndicator>N</SeniorRankIndicator>
<JuniorRankIndicator>Y</JuniorRankIndicator>
<PerpetualMaturityIndicator>N</PerpetualMaturityIndicator>
<IssueAmount>60000000</IssueAmount>
<IssuePriceAmount>25</IssuePriceAmount>
<IssueOutstandingAmount>60000000</IssueOutstandingAmount>
<SeriesDescription></SeriesDescription>
<MarketSectorCode>Pfd</MarketSectorCode>
<MininitialPurchaseNumber>25</MininitialPurchaseNumber>
<MinIncrPurchaseNumber>25</MinIncrPurchaseNumber>
<CallableIndicator>Y</CallableIndicator>
<CalledDate></CalledDate>
<CalledPriceAmount></CalledPriceAmount>
<NextCallDate>2015-04-02T00:00:00Z</NextCallDate>
<NextCallPriceAmount>25</NextCallPriceAmount>
<NextParCallDate>2015-04-02T00:00:00Z</NextParCallDate>
<MakeWholeCallIndicator>N</MakeWholeCallIndicator>
<SoftCallIndicator>N</SoftCallIndicator>
<FirstCallDate>2015-04-02T00:00:00Z</FirstCallDate>
<NextRefundDate></NextRefundDate>
<PartialCallTypeCode></PartialCallTypeCode>
<PutableIndicator>N</PutableIndicator>
<NextPutDate></NextPutDate>
<NextParPutDate></NextParPutDate>
<NextPutPriceAmount></NextPutPriceAmount>
<FactorableIndicator>N</FactorableIndicator>
<NextFactorDate></NextFactorDate>
<PreviousReportedFactorRate>1</PreviousReportedFactorRate>
<AnnounceDate>2010-03-25T00:00:00Z</AnnounceDate>
<FirstSettleDate>2010-04-01T00:00:00Z</FirstSettleDate>
<MaturityDate>2040-04-02T00:00:00Z</MaturityDate>
<FinalMaturityDate>2040-04-02T00:00:00Z</FinalMaturityDate>
<BbgCalculationMaturityDate>2040-04-02T00:00:00Z</BbgCalculationMaturityDate>
</results>
<results>
<data>
<SearchIdType>HIST_ID</SearchIdType>
<SearchIdValue>3849183</SearchIdValue>
<ErrorCd>0</ErrorCd>
<SearchPayDate>2014-09-29T00:00:00Z</SearchPayDate>
<SearchTxTimestamp>2015-04-17T21:43:40.231Z</SearchTxTimestamp>
<ValidDate>2014-09-29T00:00:00Z</ValidDate>
<BondRuid>49223518</BondRuid>
<ProductClassificationType>Issue Type</ProductClassificationType>
<BondName>JPM 6.7 04/02/40</BondName>
<BaseCurrencyCode>USD</BaseCurrencyCode>
<IssueDate>2010-04-01T00:00:00Z</IssueDate>
<Rule144Indicator>N</Rule144Indicator>
<RegulationsIndicator>N</RegulationsIndicator>
<PrivatePlacementIndicator>N</PrivatePlacementIndicator>
<DtcEligibleIndicator>Y</DtcEligibleIndicator>
<DualCurrencyIndicator>N</DualCurrencyIndicator>
<SeniorRankIndicator>N</SeniorRankIndicator>
<JuniorRankIndicator>Y</JuniorRankIndicator>
<PerpetualMaturityIndicator>N</PerpetualMaturityIndicator>
<IssueAmount>60000000</IssueAmount>
<IssuePriceAmount>25</IssuePriceAmount>
<IssueOutstandingAmount>60000000</IssueOutstandingAmount>
<SeriesDescription></SeriesDescription>
<MarketSectorCode>Pfd</MarketSectorCode>
<MininitialPurchaseNumber>25</MininitialPurchaseNumber>
<MinIncrPurchaseNumber>25</MinIncrPurchaseNumber>
<CallableIndicator>Y</CallableIndicator>
<CalledDate></CalledDate>
<CalledPriceAmount></CalledPriceAmount>
<NextCallDate>2015-04-02T00:00:00Z</NextCallDate>
<NextCallPriceAmount>25</NextCallPriceAmount>
<NextParCallDate>2015-04-02T00:00:00Z</NextParCallDate>
<MakeWholeCallIndicator>N</MakeWholeCallIndicator>
<SoftCallIndicator>N</SoftCallIndicator>
<FirstCallDate>2015-04-02T00:00:00Z</FirstCallDate>
<NextRefundDate></NextRefundDate>
<PartialCallTypeCode></PartialCallTypeCode>
<PutableIndicator>N</PutableIndicator>
<NextPutDate></NextPutDate>
<NextParPutDate></NextParPutDate>
<NextPutPriceAmount></NextPutPriceAmount>
<FactorableIndicator>N</FactorableIndicator>
<NextFactorDate></NextFactorDate>
<PreviousReportedFactorRate>1</PreviousReportedFactorRate>
<AnnounceDate>2010-03-25T00:00:00Z</AnnounceDate>
<FirstSettleDate>2010-04-01T00:00:00Z</FirstSettleDate>
<MaturityDate>2040-04-02T00:00:00Z</MaturityDate>
<FinalMaturityDate>2040-04-02T00:00:00Z</FinalMaturityDate>
<BbgCalculationMaturityDate>2040-04-02T00:00:00Z</BbgCalculationMaturityDate>
</results>
with t as (select xmltype('<results>
<data>
<SearchIdType>HIST_ID</SearchIdType>
<SearchIdValue>3849183</SearchIdValue>
<ErrorCd>0</ErrorCd>
<SearchPayDate>2014-09-29T00:00:00Z</SearchPayDate>
<SearchTxTimestamp>2015-04-17T21:43:40.231Z</SearchTxTimestamp>
<ValidDate>2014-09-29T00:00:00Z</ValidDate>
<BondRuid>49223518</BondRuid>
<ProductClassificationType>Issue Type</ProductClassificationType>
<BondName>JPM 6.7 04/02/40</BondName>
<BaseCurrencyCode>USD</BaseCurrencyCode>
<IssueDate>2010-04-01T00:00:00Z</IssueDate>
<Rule144Indicator>N</Rule144Indicator>
<RegulationsIndicator>N</RegulationsIndicator>
<PrivatePlacementIndicator>N</PrivatePlacementIndicator>
<DtcEligibleIndicator>Y</DtcEligibleIndicator>
<DualCurrencyIndicator>N</DualCurrencyIndicator>
<SeniorRankIndicator>N</SeniorRankIndicator>
<JuniorRankIndicator>Y</JuniorRankIndicator>
<PerpetualMaturityIndicator>N</PerpetualMaturityIndicator>
<IssueAmount>60000000</IssueAmount>
<IssuePriceAmount>25</IssuePriceAmount>
<IssueOutstandingAmount>60000000</IssueOutstandingAmount>
<SeriesDescription></SeriesDescription>
<MarketSectorCode>Pfd</MarketSectorCode>
<MininitialPurchaseNumber>25</MininitialPurchaseNumber>
<MinIncrPurchaseNumber>25</MinIncrPurchaseNumber>
<CallableIndicator>Y</CallableIndicator>
<CalledDate></CalledDate>
<CalledPriceAmount></CalledPriceAmount>
<NextCallDate>2015-04-02T00:00:00Z</NextCallDate>
<NextCallPriceAmount>25</NextCallPriceAmount>
<NextParCallDate>2015-04-02T00:00:00Z</NextParCallDate>
<MakeWholeCallIndicator>N</MakeWholeCallIndicator>
<SoftCallIndicator>N</SoftCallIndicator>
<FirstCallDate>2015-04-02T00:00:00Z</FirstCallDate>
<NextRefundDate></NextRefundDate>
<PartialCallTypeCode></PartialCallTypeCode>
<PutableIndicator>N</PutableIndicator>
<NextPutDate></NextPutDate>
<NextParPutDate></NextParPutDate>
<NextPutPriceAmount></NextPutPriceAmount>
<FactorableIndicator>N</FactorableIndicator>
<NextFactorDate></NextFactorDate>
<PreviousReportedFactorRate>1</PreviousReportedFactorRate>
<AnnounceDate>2010-03-25T00:00:00Z</AnnounceDate>
<FirstSettleDate>2010-04-01T00:00:00Z</FirstSettleDate>
<MaturityDate>2040-04-02T00:00:00Z</MaturityDate>
<FinalMaturityDate>2040-04-02T00:00:00Z</FinalMaturityDate>
<BbgCalculationMaturityDate>2040-04-02T00:00:00Z</BbgCalculationMaturityDate>
</data>
</results>') xmlcol from dual)
select x.searchidtype,
x.searchidvalue,
x.errorcd
from t,
xmltable('/results/data'
passing t.xmlcol
columns SearchIdType varchar2(15) path 'SearchIdType',
SearchIdValue number path 'SearchIdValue',
ErrorCd number path 'ErrorCd') x;
SEARCHIDTYPE SEARCHIDVALUE ERRORCD
--------------- ------------- ----------
HIST_ID 3849183 0