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

前
次
 

ストアド・クエリー式

問合せの結果を保存せずに、問合せの定義を格納するには、CTX_QUERY.STORE_SQEプロシージャを使用できます。CONTAINSのSQL演算子によって、その問合せの定義を参照します。このように、ストアド・クエリー式を使用すると、長い問合せ式や使用頻度の高い問合せ式を簡単に定義できます。

ストアド・クエリー式は索引に連結されません。CTX_QUERY.STORE_SQEをコールする場合、指定するのはストアド・クエリー式の名前と問合せ式のみです。

問合せの定義は、テキスト・データ・ディクショナリに格納されます。ストアド・クエリー式は、すべてのユーザーが参照できます。

関連項目:

CTX_QUERY.STORE_SQEの構文の詳細は、『Oracle Textリファレンス』を参照してください。

ストアド・クエリー式の定義

ストアド・クエリー式は、次のように定義して使用します。

  1. CTX_QUERY.STORE_SQEをコールして、テキスト列に対する問合せを格納します。STORE_SQEでは、ストアド・クエリー式の名前と問合せ式を指定します。
  2. SQE演算子を使用して、問合せ式でストアド・クエリー式をコールします。ストアド・クエリー式の結果は、通常の問合せの結果と同じ方法で戻されます。問合せは、ストアド・クエリー式のコール時に評価されます。

    ストアド・クエリー式は、REMOVE_SQEを使用して削除できます。

SQEの例

次の例では、disasterというストアド・クエリー式を作成します。この式は、tornado、hurricaneまたはearthquakeのいずれかのワードを含むドキュメントを検索します。

begin
ctx_query.store_sqe('disaster', 'tornado | hurricane | earthquake');
end;

この問合せを1つの式で実行するには、次のように問合せを記述します。

SELECT SCORE(1), title from news 
   WHERE CONTAINS(text, 'SQE(disaster)', 1) > 0
   ORDER BY SCORE(1);

関連項目:

CTX_QUERY.STORE_SQEの構文の詳細は、『Oracle Textリファレンス』を参照してください。