从全文数据库收集令牌时出错

时间:2017-03-08 09:01:46

标签: oracle full-text-search token

我想测试Oracle的CTX_DOC.TOKENS过程,以便计算字符串出现在文档中的次数。 为此,我有:

create table documents (id number primary key, text bfile);

insert into documents values (1, bfilename('MY_DIR','12things_about_122.pdf'));

create index documents_idx on documents (text) indextype is ctxsys.context;

declare
    the_tokens ctx_doc.token_tab;
begin
    ctx_doc.set_key_type ('PRIMARY_KEY');
    ctx_doc.tokens('documents_idx','1',the_tokens);
    dbms_output.put_line('Number of tokens: '|| the_tokens.count);
 end;

当我测试它时,PLSQL部分失败了:

  

错误报告:

     

ORA-20000:Oracle Text错误:

     

DRG-10001:无法访问结果表the_tokens

     

ORA-06512:at" CTXSYS.DRUE",160行

     

ORA-06512:at" CTXSYS.CTX_DOC",第862行ORA-06512:第5行

     
      
  1. 00000 - "%s"
  2.         

    *原因:存储过程' raise_application_error'              被调用,导致生成此错误。

         

    *操作:按照错误消息或联系人中的说明更正问题              应用程序管理员或DBA以获取更多信息。

为了正常工作,你能帮助我理解需要什么吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

似乎从第一次看起来答案太容易了:

有必要将ctx_doc.token_tab;与模式名称相关联。

而不是the_tokens ctx_doc.token_tab,我必须the_tokens ctxsys.ctx_doc.token_tab;