【发布时间】:2016-06-17 15:31:58
【问题描述】:
在文本搜索中结合使用通配符和点时,我的查询找不到匹配的行。
例如:
CREATE TABLE MY_TABLE( ITEM_NUMBER VARCHAR2(50 BYTE) NOT NULL);
INSERT INTO MY_TABLE (ITEM_NUMBER) VALUES ('1234.1234');
create index TIX_ITEMNO on MY_TABLE(ITEM_NUMBER) indextype is ctxsys.context;
我想在 MY_TABLE 中查找 ITEM_NUMBER 列为“1234.1234”的行
这确实找到了行:
SELECT * FROM MY_TABLE
WHERE CONTAINS(ITEM_NUMBER, '%1234') > 0
这没有找到行:
SELECT * FROM MY_TABLE
WHERE CONTAINS(ITEM_NUMBER, '%.1234') > 0
我不明白为什么,因为根据 Oracle,点不是必须转义的特殊字符。
我该如何处理这种情况?
【问题讨论】:
-
第一个匹配而不是第二个匹配的数据是什么?
-
请显示运行查询的示例输入数据以及预期结果。
-
您没有以
'.1234'结尾的text值。 -
你确定这是一个文本列吗?
-
ITEM_NUMBER VARCHAR2(50 BYTE) NOT NULL,
标签: sql oracle oracle-text