1

次のようなOracle Text索引を作成しました。

create index my_idx on my_table (text) indextype is 
    ctxsys.ctxcat parameters('index set my_table_iset');

クエリを実行すると、次のようになります。

DECLARE
  cnt  NUMBER;
  attr VARCHAR2(256);
BEGIN
  attr := 'BECKMANNS';
  SELECT COUNT(text)
  INTO cnt
  FROM my_table
  WHERE catsearch(text, attr, '') > 0 ;
  dbms_output.put_line( '->' || cnt);
END;

これは機能します。しかし、値を変更すると

attr := '"BECKMANNS"'

エラーが発生します:

ORA-29902: error in executing ODCIIndexStart() routine
ORA-20000: Oracle Text error:
DRG-50943: query token too long on line 1 on column 1

Oracleのドキュメントで、特殊文字を括弧で囲むことができることがわかりました

attr := '{' || '"BECKMANNS"' || '}'

しかし、これでも同じエラーが発生します。これのバリエーションを試しましたが、役に立ちませんでした。

何か案は?

4

0 に答える 0