job肯定是周期性的。
你可以写个存储过程,把用户的要求的这几个表变量当参数传进去。在代码中进入判断,如果当前sysdate满足你的要求,则执行你的逻辑,否则,则其他的时间段,就直接退出。

解决方案 »

  1.   

    一个自动调价的job:
    VARIABLE jobno NUMBER;
    BEGIN
      SYS.DBMS_JOB.SUBMIT(
          job => :jobno,
                          what => 'DECLARE LI_RET NUMBER; BEGIN AUTO_AJUST_PRICE(LI_RET); END;',
                          next_date => to_date('26-11-2004 16:20:00', 'dd-mm-yyyy hh24:mi:ss'),
                          interval => 'trunc(sysdate) + 28/24',
                          no_parse  => TRUE
                         );
      commit;
      SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
    END;
    /
    最好的资料还是oracle的帮助文件
      

  2.   

    以上的结果并不能实现用户可配置的定义JOB.而且,我认为JOB中调用的存储过程,因为要完成删除某D日期以前的记录.所以存储过程也是带参数的.总之不管怎么做,要事先,开始的需求.
    请教各位了.
      

  3.   

    怎么没人回答?怎么实现?如果把JOB套在过程里,怎么定义那个JOB号的参数?