SEARCH_INDEX (SQL)
構文
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)