2016-05-30 11 views
-3
<?xml version="1.0" encoding="UTF-8"?> 
<Document xmlns="urn:rocs.001.001.06"> 
<pokus> 
<RchEntry> 
     <PstlAdr> 
     <Ctry>IT</Ctry> 
    <AdrLine>VIA SARDEGNA, 12</AdrLine> 
     <AdrLine>00019TIVOLI RM</AdrLine> 
     </PstlAdr> 
    </RchEntry> 
    <RchEntry> 
    <PstlAdr> 
     <Ctry>IT1</Ctry> 
     <AdrLine>VIA SARDEGNA1, 12</AdrLine> 
     <AdrLine>00019TIVOLI11 RM</AdrLine> 
     </PstlAdr> 
    </RchEntry> 
    </pokus> 
</Document> 

これは値を抽出する必要があるxmlファイルです。各RchEntryは1つの行として扱われます。 plsqlを使用してAdrLineタグの値を抽出するにはどうすればよいですか?xmlファイルからデータを抽出してテーブルに挿入する必要があります

答えて

0
WITH t AS 
    (SELECT column_value 
    FROM TABLE(xmlsequence(extract(xmltype('<Document> 
<rocs.001.001.06> 
<RchEntry>  
<PstlAdr>  
<Ctry>IT</Ctry>  
<AdrLine>VIA SARDEGNA, 12</AdrLine>  
<AdrLine>00019TIVOLI RM</AdrLine>  
</PstlAdr>  
</RchEntry>  
<RchEntry>  
<PstlAdr>  
<Ctry>IT1</Ctry>  
<AdrLine>VIA SARDEGNA1, 12</AdrLine>  
<AdrLine>00019TIVOLI11 RM</AdrLine>  
</PstlAdr>  
</RchEntry>  
</rocs.001.001.06> 
</Document>'),'/Document/rocs.001.001.06/*'))) 
) 
SELECT t1.* 
FROM t, 
    xmltable('/RchEntry' passing t.column_value columns Ctry VARCHAR2(100) path '/RchEntry/PstlAdr/Ctry', AdrLine1 VARCHAR2(100) path '/RchEntry/PstlAdr/AdrLine[1]', AdrLine2 VARCHAR2(100) path '/RchEntry/PstlAdr/AdrLine[2]') t1; 
+0

xmlファイルから名前空間を削除せずに抽出することはできますか? – Shadow

関連する問題