2017-05-10 2 views
2

私はXML は、Oracle 11gで値をXMLを照会する必要が

RunList_XML

と呼ばれるXMLType列を持つパーツと呼ばれるテーブルを持っているいくつかのユニットが、私は戻って、すべてのパーツ のリストを取得するクエリを実行する例 <Item> <Unit>420</Unit> </Item> <Item> <Unit>10</Unit> </Item> <Item> <Unit>0</Unit> </Item> タグそれは以下の私は、これは= 420または=「420」を使用して取得する方法を見つけ出すように見えるカント420 の単位

を持って戻って偽陽性を与える

select * from Parts P 
    WHERE P.RunList_XML.extract('ArrayOfItem// /Unit/text()').getStringVal() like '%420' 

答えて

1

この私たちを試してみてくださいexistsnodeをINGの:

select * from Parts P 
    WHERE existsnode(RunList_XML, 'ArrayOfItem//Item[Unit="420"]') = 1 

existsnodeリターン1は、ノードが見つかり、0であればされない場合。

+0

これは完璧に動作します、ありがとうございます –

関連する問題