我想测试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行
- 00000 - "%s"
醇>*原因:存储过程' raise_application_error' 被调用,导致生成此错误。
*操作:按照错误消息或联系人中的说明更正问题 应用程序管理员或DBA以获取更多信息。
为了正常工作,你能帮助我理解需要什么吗?
谢谢,
答案 0 :(得分:0)
有必要将ctx_doc.token_tab;
与模式名称相关联。
而不是the_tokens ctx_doc.token_tab
,我必须the_tokens ctxsys.ctx_doc.token_tab;