【问题标题】:Oracle CONTAINS query not returning resultsOracle CONTAINS 查询不返回结果
【发布时间】:2014-11-14 15:01:01
【问题描述】:

我有一个名为 products 的表,其架构和数据如下:

|   product_id   |   name   |   description   |   price   |   location   |
|     NUMBER     | VARCHAR2 |       CLOB      |NUMBER(9,2)| SDO_GEOMETRY |
--------------------------------------------------------------------------
|      27        | Nexus 4  |  Android phone  |    160    |     null     |

当我发出SELECT * FROM products; 查询时,我会取回数据。一切都很好。但我希望能够在其中使用CONTAINS() 获得结果,如下所示:

SELECT "PRODUCT_ID", "NAME", "DESCRIPTION", "PRICE"
FROM "PRODUCTS"
WHERE CONTAINS("NAME", 'nexus') > 0;

但是我没有得到任何结果。当我将nexus 更改为NexusNexus 4 时,也会发生同样的事情。我认为这可能与 name 是一个已解析的词有关,但 description 列也会发生同样的情况。

【问题讨论】:

  • 你的索引同步了吗?

标签: sql oracle contains oracle12c oracle-text


【解决方案1】:

原来这是因为我在同一张表上有两个文本索引,用于名称和描述。我删除了用于描述的那个,它起作用了。

【讨论】:

    【解决方案2】:

    如果您不使用混合/小写的表和列名称,则可以在查询中删除所有 " 字符 ...

    【讨论】:

      【解决方案3】:

      SELECT product_id, name, description, price FROM product WHERE CONTAINS(name, '%Nexus%') > 0;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-31
        • 2019-09-18
        • 2012-05-08
        • 2016-09-30
        相关资源
        最近更新 更多