一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第26天,点击查看活动详情。
第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>。