ヘッダーをスキップ
Oracle® Textアプリケーション開発者ガイド
12cリリース1 (12.1)
B71317-04
  目次へ移動
目次
索引へ移動
索引

前
次
 

Text-on-XMLメソッドの使用

Oracle Textを使用すると、XMLデータを含む列にCONTEXT索引を作成できます。列型はXMLTypeですが、XMLデータの正しい索引プリファレンスを使用する場合は、サポートされている任意の型にできます。

Text-on-XMLメソッドでは、標準のCONTAINS問合せを使用して、構造化制約を追加し、検索の範囲を特定のセクション、フィールド、タグまたは属性に制限します。つまり、テキスト演算子内に、WITHINHASPATHINPATHなどの構造を指定することになります。

たとえば、CONTEXT索引を設定し、XMLドキュメントを使用してセクションを作成します。購買依頼を定義する次のXMLドキュメントを考えてみます。

<?xml version="1.0"?>
<PURCHASEORDER pono="1">
   <PNAME>Po_1</PNAME>
   <CUSTNAME>John</CUSTNAME>
   <SHIPADDR>
      <STREET>1033 Main Street</STREET>
      <CITY>Sunnyvalue</CITY>
      <STATE>CA</STATE>
   </SHIPADDR>
   <ITEMS>
     <ITEM>
       <ITEM_NAME> Dell Computer </ITEM_NAME>
       <DESC> Pentium 2.0 Ghz 500MB RAM  </DESC>
     </ITEM>
     <ITEM>
       <ITEM_NAME> Norelco R100 </ITEM_NAME>
       <DESC>Electric Razor </DESC>
     </ITEM>
   </ITEMS>
</PURCHASEORDER>

品目の説明セクション内にPentiumを含むすべての購買依頼を問い合せるには、WITHIN演算子を使用します。

SELECT id from po_tab where CONTAINS( doc, 'Pentium WITHIN desc') > 0;

INPATH演算子を使用して、XPATH式でより複雑な基準を指定します。

SELECT id from po_tab where  CONTAINS(doc, 'Pentium INPATH (/purchaseOrder/items/item/desc') > 0;