テキスト検索でワイルドカード文字をドットと組み合わせて使用すると、クエリで一致する行が見つかりません。
例えば:
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;
ITEM_NUMBER列が「1234.1234」であるMY_TABLEの行を見つけたい
これは行を見つけます:
SELECT * FROM MY_TABLE
WHERE CONTAINS(ITEM_NUMBER, '%1234') > 0
これは行を見つけません:
SELECT * FROM MY_TABLE
WHERE CONTAINS(ITEM_NUMBER, '%.1234') > 0
オラクルによれば、ドットはエスケープする必要がある特殊文字ではないため、その理由はわかりません。
この状況をどのように処理する必要がありますか?