命令行创建oracle全文索引和任务示例
方正 李守亮 2004年
1、以dba身份对ctxsys用户解锁、设置口令
sqlplus /nolog
conn / as sysdba
--对ctxsys用户解锁、设置口令
ALTER USER "CTXSYS" ACCOUNT UNLOCK;
ALTER USER "CTXSYS" IDENTIFIED BY "ctxsys";
2、创建PREFERENCE及用户授权
--以ctxsys登陆创建PREFERENCE以及对执行全文检索的用户授权
conn ctxsys/ctxsys
BEGIN
CTX_DDL.CREATE_PREFERENCE('CTXSYS.CMS_CHINESE_LEXER', 'CHINESE_VGRAM_LEXER');
END;
/
GRANT EXECUTE ON CTX_DDL TO ENPUSER;
commit;
/
3、创建索引和任务
--以执行全文检索的用户登录创建索引
conn enpuser/enppwd
CREATE INDEX ENPUSER.FTIDX_TITLE
ON ENPUSER.NSRELEASELIB(TITLE)
INDEXTYPE IS CTXSYS.CONTEXT
PARAMETERS (' LEXER CTXSYS.CMS_CHINESE_LEXER');
--设置每5分钟更新一次全文索引
DECLARE
jobno number;
BEGIN
DBMS_JOB.SUBMIT(jobno,'ctx_ddl.sync_index(''FTIDX_TITLE'');', SYSDATE, 'SYSDATE + (1/24/12)');
END;
/
--设置每1天优化一次全文索引
DECLARE
jobno number;
BEGIN
DBMS_JOB.SUBMIT(jobno,'ctx_ddl.optimize_index(''FTIDX_TITLE'',''FULL'');', SYSDATE, 'SYSDATE +
1');
END;
/