第123章 SQL函数 SEARCH_INDEX
从索引的 Find()
方法返回一组值的函数。
大纲
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
语句引用的表中找到。如果 SQL
语句使用的表中不存在指定的索引名称,则会生成 SQLCODE -151
错误。如果指定的索引名不是完全限定的,则会生成 SQLCODE -152
错误,因此在 SQL
语句使用的表中不明确(可能引用多个现有索引)。
如果索引存在,但没有对应的 Find()
方法,则生成运行时 SQLCODE -149
错误“SQL 函数遇到错误”
,错误为 &<METHOD DOES NOT EXIST>
。