到目前为止,我一直没有运气这个问题。 我有一个基本查询,即搜索单词'或'或者'和'列中包含。
例如:
SELECT * FROM MyTable
WHERE CONTAINS(title, 'and', 1) > 0
执行此操作会引发oracle错误:SQL错误:ORA-29902:执行ODCIIndexStart()例程时出错
搜索此网站和网页以寻找解决方案
找到这两个帖子,我给了我一个关于如何转义这个关键字的提示
但它没有用。
我知道我有标题所在的行(例如):
如果我坚持两个'%' (pourcentage)在单词'和'的两端。 (提供此查询):
SELECT * FROM MyTable
WHERE CONTAINS(title, '%and%', 1) > 0
我没有错误,但在我的结果中,我得到的字词包含字符串'和' (像QOANDOA)。 请注意,我可以添加一个'%'它也可以工作
但它并不是我所寻找的:(
使用{}转义会返回一个空结果。使用' /'
也是如此有关如何解决此问题的任何想法?
答案 0 :(得分:1)
您应该创建一个上下文索引,并定期对其进行同步,以便与应用于拥有该索引的表的DML保持同步。这可以通过使用ctx_ddl.sync_index:
来完成SQL> create index idx_title on mytable(title) indextype is ctxsys.context;
Index created.
SQL> exec ctx_ddl.sync_index('idx_title'); -- there are lots of arguments optional, in this case i left the other args. as default
PL/SQL procedure successfully completed.
SQL> SELECT * FROM MyTable;
TITLE
--------------
CPAND AND SLAF
QOAND AND GI
QOANDOA
SQL> SELECT * FROM MyTable
WHERE CONTAINS(title, '%AND%', 1) > 0; 2
TITLE
--------------
CPAND AND SLAF
QOAND AND GI