真的就没有人会??我看e文时, 告诉我创建ctxsys用户,
然后让我对它付ctxadmin权限,可我怎么也没有找到创建ctxadmin角色的地方呀? e 文帮助里找不到呀. ...., 还有怎么启动ConText server呢??god save me!!!
然后让我对它付ctxadmin权限,可我怎么也没有找到创建ctxadmin角色的地方呀? e 文帮助里找不到呀. ...., 还有怎么启动ConText server呢??god save me!!!
简单的示例 这里先给出一个简单示例说利用Oracle Text实现全文检索的方法与步骤,在后面在进行具体的说明。Orcale9i提供了Oracle Text Manager可以简化许多工作,所有在Oracle Text Manager中完成的工作,都可以在通过PL/SQL来实现。要使用Oracle Text,必须具有CTXAPP角色或者是CTXSYS用户。Oracle Text为系统管理员提供CTXSYS用户,为应用程序开发人员提供CTXAPP角色。 CTXSYS用户可执行以下任务:启动Oracle Text服务器,执行CTXAPP角色的所有任务。
具有CTXAPP角色的用户可执行以下任务: 创建索引,管理 Oracle Text 数据字典,包括创建和删除首选项,进行Oracle Text 查询,使用 Oracle Text PL/SQL程序包。 使用Oracle Text的步骤: (1)创建表来保存某些文档。该示例使用一个主关键字列来标识每个文档,使用一个小的VARCHAR2列来保存每个文档。CREATE TABLE docs (id NUMBER PRIMARY KEY, text VACHAR2(80)); (2)将两个示例文档置入该表:INSERT INTO docs VALUES (1,'the first doc');
INSERT INTO docs VALUES (2,'the second doc');
COMMIT; (3)使用Oracle Text Manager来创建和修改首选项,首选项将与索引相关联。 (4)使用Oracle Text Manager创建文本索引。另外,可以输入以下使用默认首选项的 SQL 语句:CREATE INDEX doc_index ON docs(text) INDEXTYPE IS CTXSYS.CONTEXT; (5)使用 CONTAINS 函数,发出基于内容的文档查询。例如:SELECT id FROM docs WHERE CONTAINS (text, 'first') > 0; 这将在文本列包含单词 first (即文档1) 的 docs 中查找所有行。语句中的>0部分是有效的Oracle SQL所必需的,Oracle SQL不支持函数的布尔返回值。 以上只是一个简单的示例,旨在给出使用Oracle Text建立全文索引的完整步骤,归纳起来如下: (1)建表并装载文本(包含带有需要检索的文本字段) (2)配置索引 (3)建立索引 (4)发出查询 (5)索引维护:同步与优化
2\我用ctxsrv80 -user ctxsys/ctxsys 启动服务也没出错. 3\然后我就建表
CREATE TABLE docs (id NUMBER PRIMARY KEY, text VACHAR2(80));INSERT INTO docs VALUES (1,'the first doc');
INSERT INTO docs VALUES (2,'the second doc');
COMMIT;再调用select * from tbl_docs where contains(text,'abc')>0;就不动了,进程也没有反应!
不知道应该怎么办? 也就是说应该怎样实现全文检索呢??? 请不吝赐教!!!!
http://www.pcdog.com/info/3617.htm
http://download-west.oracle.com/docs/cd/B10501_01/text.920/a96518/toc.htm
ctx_ddl.drop_policy('ctxio_emp_pol');
ctx_ddl.create_policy (policy_name => 'ctxio_emp_pol',
colspec => 'ctxio_emp.resume',
textkey => 'empno');
select * from ctxio_emp where ctx_query.contains(policy_name => 'ctxio_emp_pol',
text_query =>'oracle');
end;结果select 时出问题了:
ora-06550:....
PLS-00222: 在此范围(scope)中不存在名为contains函数.
可是我明明看见里面有这个函数的呀!!怪怪.有没有人能指导一下. 不甚感激.
但时我
create index i_ctxio on ctxio_emp(resume) indextype is ctxsys.context ;这样做说是无效的参数.
而这样
create index i_ctxio on ctxio_emp(resume)
就说是不能在blob列定义索引.怎么办?? 有没有人愿意同我一起讨论一下的.
ctx_ddl.create_index('ctxio_emp_pol',create_trig => true);
却报:
ORA-20000: ConText error:
DRG-10521: failed to access the text index: column policy=ctxio_emp_pol
DRG-10518: an operation is in progress which conflicts with CREATE request
ORA-06512: 在"CTXSYS.DRUE", line 180
ORA-06512: 在"CTXSYS.CTX_DDL", line 94
ORA-06512: 在line 2