在WHERE CONTAINS子句的视图上没有使用索引

Chr*_*her 5 oracle indexing view

我创建了一个表,其中一列是地址.然后我创建了一个带有WHERE CONTAINS子句的视图,该子句指出select只能在包含特定单词的地址上执行.

然后,我在原始表上创建了一个地址列的索引.

它说索引创建了.

当我输入

select * from myview
Run Code Online (Sandbox Code Playgroud)

它说

drg-10599: column is not indexed.  
Run Code Online (Sandbox Code Playgroud)

知道为什么这不起作用吗?

Jus*_*ave 10

您需要创建Oracle Text索引,而不是标准的b-tree索引.有很多选项可用于创建和维护Oracle Text索引,您应该仔细阅读这些索引,以便确切了解要使用的选项.

最简单的DDL语句就是

CREATE INDEX myindex ON table_a(address) 
       INDEXTYPE IS CTXSYS.CONTEXT;
Run Code Online (Sandbox Code Playgroud)