文章
· 四月 25, 2022 阅读大约需 2 分钟

第123章 SQL函数 SEARCH_INDEX

第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,该对象提供封装一组值的抽象表示。这些值通常是查询运行时调用的方法返回的行 IDSEARCH_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>

讨论 (0)1
登录或注册以继续