2013年3月7日木曜日

oracleのSELECT文一発でXMLの属性値を取得したい



下のようなXMLがxml_column(XMLTYPE型)に入っていたとして。
ID属性が"00"のType要素のName属性値を取得したい。


<root>
 <Type ID="00" Name="TEST00">
  <Item ID="00" Name="TEST00-01"/>
  <Item ID="01" Name="TEST00-02"/>
 </Type>
 <Type ID="01" Name="TEST01">
  <Item ID="02" Name="TEST01-01"/>
  <Item ID="03" Name="TEST01-02"/>
 </Type>
</root>

select d.xml_column.extract('/root/Type[@ID="00"]/@Name').getStringVal() from hoge_table d

検索結果

TEST00

てっきりXPATH側でなんとかするのかと思って弄り回してたけど、.getStringVal()を使うのでした...。

0 件のコメント:

コメントを投稿