在文本搜索中将通配符与点结合使用时,我的查询找不到匹配的行。
例如:
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,点不是必须转义的特殊字符。
我该如何处理这种情况?