Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

SEARCH_INDEX

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

Synopsis

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

引数

table-name オプションindex-name が定義されている既存のテーブルの名前。ビューにすることはできません。テーブルの schema_name はオプションです。指定を省略すると、FROM 節で指定されているすべてのテーブルが検索対象になります。
index-name 検索対象のインデックス。既存インデックスのインデックス・マップの SqlName
findparam オプション — インデックスの Find() メソッドに渡されるパラメータまたはコンマ区切りリスト。

説明

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

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

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

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

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

SEARCH_INDEX の使用の詳細は、"iKnow の使用法" の "iFind 検索ツール" の章を参照してください。

関連項目

FeedbackOpens in a new tab