Oracle db 中的包含运算符不显示带有 *&?^$# 字符的单词
Posted
技术标签:
【中文标题】Oracle db 中的包含运算符不显示带有 *&?^$# 字符的单词【英文标题】:Contains operator in Oracle db doesn't show words with *&?^$# characters 【发布时间】:2021-11-16 04:31:09 【问题描述】:我在 oracle DB 中有一个表,其中一个名为 Name 的列具有这些值。
Hello$world
Hello?world
Hello*world
Hello.world
当我以这种方式使用 CONTAINS 运算符搜索单词 Hello 时,我在结果中看不到任何这些单词。是我的查询样式不正确还是 CONTAINS 不搜索这类词?
SELECT * from t_words WHERE Contains(name, '%Hello%') > 0
【问题讨论】:
我认为您将LIKE
语法与CONTAINS
语法混淆了(但我从未使用过后者,所以我可能错了。我认为这一定是WHERE Contains(name, 'Hello') > 0
。
【参考方案1】:
SELECT SCORE(1), p.name FROM person p
WHERE CONTAINS(p.name, '%Hello%',1) > 0
当我执行this 时它会起作用。
【讨论】:
以上是关于Oracle db 中的包含运算符不显示带有 *&?^$# 字符的单词的主要内容,如果未能解决你的问题,请参考以下文章