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 中的包含运算符不显示带有 *&?^$# 字符的单词的主要内容,如果未能解决你的问题,请参考以下文章

Oracle DB 使用子查询来解决查询

在 gridview 中显示 oracle 数据库值

Oracle DB 使用连接显示多个表中的数据

使用带有 node-oracledb 的 SID 连接到 Oracle DB 失败

处理 Oracle DB 存储的 Java 类中的异常

如何显示表中的替代值,列具有值“M”和“F”(Oracle DB)