首页 > 解决方案 > 带有特殊字符的 Oracle 文本搜索

问题描述

我的索引如下;

create index cidx_column1 on MY_TABLE(column1) indextype is ctxsys.CTXCAT;

SELECT
from 
  MY_TABLE
WHERE catsearch(column1, '$*', null)  > 0 and taken > 
to_date('01/01/2020','dd/mm/yyyy')

我有一列可以有特殊字符。如何列出所有具有特殊字符(如“$”符号)的数据?上面的语句没有返回任何内容,我可以确认“column1”有一个文本 $50 等等。

我想使用基于 oracle 文本的搜索而不是运算符。

非常感谢您在这方面的帮助或任何建议。

谢谢拉文

标签: sqloracletext-search

解决方案


请使用以下查询。您可以使用LIKEINSTR

SELECT
from 
  MY_TABLE
WHERE column1 like '%$%' and taken > 
to_date('01/01/2020','dd/mm/yyyy');

或者

SELECT
from 
MY_TABLE
WHERE instr(column1, '$') > 0 and taken > 
to_date('01/01/2020','dd/mm/yyyy');

推荐阅读