在文本搜索中將通配符與點組合使用時,我的查詢找不到匹配的行。使用通配符進行查詢並且點與Oracle文本索引不匹配
例如:
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
我不明白爲什麼,因爲根據甲骨文的點不是一個特殊的角色必須逃脫。
我該如何處理這種情況?
什麼數據與第一個匹配而不是第二個匹配? – Nivas
請顯示您的示例輸入數據運行查詢和預期結果。 – OldProgrammer
您沒有以「.1234」結尾的「text」值。 –