我在Oracle10g中启动任务队列管理器(Job Queue)
编写程序在SQL*Plus中执行,但是程序运行不稳定--有时执行有时不执行。
不知道还有没有什么别的办法来实现对数据库中数据的定时处理。 

解决方案 »

  1.   

    操作系统作业调度可以啊windows下可以做成批处理,任务调度
    linux/unix下可以写成shell,用crontab调度
      

  2.   

    写个.BAT程序文件,放到WINDOWS的任务计划里
      

  3.   

    如果你用了Oracle10g,用DBMS_SCHEDULER是一个很好的选择,下面是一个例子,每分钟定期向a1表INSERT一条数据CREATE TABLE a1(id number, date1 date, comment1 VARCHAR2(100));
    COMMENT ON TABLE a1 IS '向此表中插入测试数据,id来自序列seq_test,date1为sysdate,comment1为"在sysdate时间插入的第id条记录"';CREATE SEQUENCE seq_test;
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB(
    job_name => 'job1',
    job_type => 'PLSQL_BLOCK',
    job_action => 'INSERT INTO a1(id,date1) VALUES(seq_test.nextval, sysdate);',
    start_date => SYSDATE,
    repeat_interval => 'FREQ=MINUTELY; INTERVAL = 1',
    enabled => TRUE
    );
    END;
    /要删除此JOB,用 BEGIN
      DBMS_SCHEDULER.DROP_JOB('job1');
    END;
    /关于Oracle Scheduler介绍http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/schedover.htm#i1106753