oracle全文索引和定时任务

--首先检查数据库中是否有CTXSYS用户和CTXAPP脚色。

--如果没有这个用户和角色,意味着你的数据库创建时未安装intermedia功能。

--你必须修改数据库以安装这项功能。


--用sys用户为了用户gzinfo分配权限

grant  CTXAPP  to  gzinfo;
grant   execute   on  ctx_ddl  to  gzinfo;

 

--回到gzinfo用户

--创建测试表,CLOBTEXT字段为需要索引的字段

create   table  INXTEXT (ID  number ( 13 ), CLOBTEXT CLOB);


--创建分词,这里用了chinese_vgram_lexer,分词名为GZINFO_LEXER

 

call ctx_ddl.create_preference ( ' GZINFO_LEXER ' ' chinese_vgram_lexer ' );

 

--创建索引,索引名为INX_TEST (PARAMETERS 中需要以LEXER开头,替换时用replace)

create   index  INX_TEST  ON  INXTEXT (CLOBTEXT) INDEXTYPE  IS  CTXSYS.CONTEXT PARAMETERS ( ' LEXER INFO_LEXER ' );

 

--创建记录表

create   table  JOBTEST (ID DATE, CONTENT  VARCHAR2 ( 200 ));

 

--创建同步存储过程,ctx_ddl.sync_index('INX_TEST')为同步全文索引,同步表字段中的信息

create   or   replace   procedure  PROC_SYNC_INDEX
is
begin
ctx_ddl.sync_index(
' INX_TEST ' );
insert   into  JOBTEST  values (SYSDATE,  ' 同步任务于 ' || SYSDATE || ' 执行 ' );
end ;

 

--创建同步优化存储过程,ctx_ddl.optimize_index('INX_TEST','FULL')为优化全文索引

 

ContractedBlock.gif ExpandedBlockStart.gif Code
create or replace procedure PROC_SYNC_OPTIMIZE
is
begin
ctx_ddl.sync_index(
'INX_TEST');
ctx_ddl.optimize_index(
'INX_TEST','FULL');
insert into JOBTEST values(SYSDATE, '同步优化任务于'||SYSDATE||'执行');
end;

 

--创建定时任务以便同步全文索引

DECLARE
       X 
NUMBER ;
BEGIN
   SYS.DBMS_JOB.SUBMIT
   (
    job        
=>  X 
   ,what       
=>   ' PROC_SYNC_INDEX; '
   ,next_date  
=>  SYSDATE
   ,interval   
=>   ' SYSDATE+2/1440 '
   );
END ;

 

--创建定时任务以便同步优化全文索引

ContractedBlock.gif ExpandedBlockStart.gif Code
DECLARE
       X 
NUMBER;
BEGIN
   SYS.DBMS_JOB.SUBMIT
   (
    job        
=> X 
   ,what       
=> 'PROC_SYNC_OPTIMIZE;'
   ,next_date  
=> SYSDATE
   ,interval   
=> 'TRUNC(SYSDATE + 1) + 1/(24)'
   );
END;

 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/skey_chen/archive/2009/11/12/4801211.aspx

转载于:https://www.cnblogs.com/skey_chen/archive/2009/11/12/1601605.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值