我需要在一个数据库上建立一个触发器,每隔一段时间(比如20分钟),读取一次里面的数据,请教高手,怎么解决。

解决方案 »

  1.   

    这哪叫解发器,明明叫job嘛,使用dbms_job这个包
    假设有一个存储过程p_test,每20分钟执行一次
    1、把init<sid>.ora中如下两个参数打开
     JOB_QUEUE_INTERVAL=60
     JOB_QUEUE_PROCESSES=4
     然后重启一个库,如果原来已经打开了则不用这步了
    2、示例,以下由sqlplus 来执行,具体参照一下相关的文档
     VARIABLE jobno number;
     BEGIN
       DBMS_JOB.SUBMIT(:jobno,
         'p_test;'
         SYSDATE,'SYSDATE + 1/72');
       commit;
     END;
     /
      

  2.   

    write a store procedure to deal with data,and add this procedure to job and let this job run ervery 20 minutes
      

  3.   

    如果是oracle8i 按照 hrb_qiuyb(大森林) 的方法可行,但还得启动job:sql> begin
        dbms_job.run(:jbno);
        end;
       /
    如果是oracle9i,我不知道修改哪一个init<sid>.ora 文件才行。