Oracle CONTAINS查询未返回结果

问题描述 投票:2回答:3

我有一个名为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
3个回答
0
投票

原来是因为我在同一个表上有两个文本索引,用于名称和描述。我删除了一个进行描述,并且可以正常工作。


0
投票

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


0
投票

SELECT product_id, name, description, price FROM product WHERE CONTAINS(name, '%Nexus%') > 0;
© www.soinside.com 2019 - 2024. All rights reserved.