Skip to main content

SEARCH_INDEX (SQL)

インデックスの Find() メソッドから一連の値を返す関数です。

構文

SEARCH_INDEX([[schema_name.]table-name.]index-name 
  [,findparam[,...]])

説明

SEARCH_INDEX は、index-name Find() メソッドを呼び出し、一連の値を返します。オプションでパラメータをこの Find() メソッドに渡すことができます。例えば、SEARCH_INDEX(Sample.Person.NameIDX)Sample.Person.NameIDXFind() メソッドを呼び出します。

SEARCH_INDEX は、WHERE 節内で %FIND 述語と共に使用して、オブジェクトの oref を指定することができます。これは一連の値をカプセル化する抽象表現を提供します。これらの値は一般に、クエリ実行時に呼び出されるメソッドによって返される行 ID です。SEARCH_INDEX は、インデックスの Find() メソッドを呼び出してこの oref を返します。

インデックスは、SQL 文が参照するテーブル内になければなりません。SQLCODE -151 エラーは、指定された index-name が SQL 文により使用されるテーブル内に存在していない場合にのみ生成されます。SQLCODE -152 エラーは、指定された index-name が完全修飾でなく、SQL 文により使用されるテーブル内であいまいである (既存の複数のインデックスを参照している可能性がある) 場合に生成されます。

インデックスが存在するものの、対応する Find() メソッドがない場合、ランタイム SQLCODE -149 エラー “SQL 関数でエラーが発生しました” が生成され、エラーの内容は <METHOD DOES NOT EXIST> となります。

SEARCH_INDEX の使用法の詳細は、"SQL Search" テキスト検索ツールを参照してください。

引数

table-name

index-name が定義されている既存のテーブルの名前を指定する引数 (オプション)。ビューにすることはできません。テーブルの schema_name はオプションです。指定を省略すると、FROM 節で指定されているすべてのテーブルが検索対象になります。

index-name

検索対象のインデックス。既存インデックスのインデックス・マップの SqlName

findparam

インデックスの Find() メソッドに渡されるパラメータまたはパラメータのコンマ区切りリスト (オプション)。

以下の例は、SEARCH_INDEX での %FIND 述語の使用法を示しています。

SELECT Name FROM Sample.Person AS P
WHERE P.Name %FIND SEARCH_INDEX(Sample.Person.NameIDX) 

関連項目

FeedbackOpens in a new tab