Oracle Text を使用すると、奇妙な動作が発生します。次の表を作成しました。
CREATE TABLE TEST_OTEXT_TABLE (id NUMBER PRIMARY KEY, text VARCHAR2(200));
そして、テーブルに次のデータを入力しました。
1 California is a state in the US.
2 Paris is a city in France.
3 France is in Europe.
4 Italy is a city in Europe.
次に、インデックスを作成しました。
CREATE INDEX TEST_OTEXT_INDEX ON TEST_OTEXT_TABLE(text)
INDEXTYPE IS CTXSYS.CONTEXT
parameters ('DATASTORE CTXSYS.DEFAULT_DATASTORE');
EXEC CTX_DDL.SYNC_INDEX('TEST_OTEXT_INDEX', '2M');
私が走れば
select id, score(1) from TEST_OTEXT_TABLE WHERE CONTAINS (text, 'is a city', 1) > 0 ;
Oracle Text が正しく返されるため、すべて正常に動作します。
ID SCORE(1)
---------- ----------
2 4
4 4
ただし、実行すると
select id, score(1) from TEST_OTEXT_TABLE WHERE CONTAINS (text, 'is a', 1) > 0 ;
戻ります
no rows selected
まったく同じ結果を返す代わりに。