我创建了一个 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"' || '}'
但这仍然给出了同样的错误。我尝试了这种变化,但无济于事。
有任何想法吗?