Oracle CONTAINS查询不返回结果

时间:2014-11-14 15:01:02

标签: sql oracle contains oracle12c oracle-text

我有一个名为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列也会发生同样的事情。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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