现在,我写的过程是直接执行的
应该是我在将这个作业的过程提交成功后,并且要在规定的时间的时候才执行
等于是说我调用过程的这个程序就没有用。这个试我过程的代码:请指教!
CREATE OR REPLACE PROCEDURE dataxf_oraclejob
as
BEGIN
update newsdb set sorted='2' where sorted='3';
END;
/VARIABLE v_jobnum NUMBER
begin
dbms_job.submit(:v_jobnum,'dataxf_oraclejob;',to_date('2001-12-30 17:12:00','yyyy-mm-dd hh24:mi:ss'),1);
end;
/

解决方案 »

  1.   

      1  create or replace procedure dataxf_oraclejob
      2  as
      3  begin
      4  update newsdb set sorted='2' where sorted='3';
      5* end;
    SQL> /过程已创建。SQL> commit;提交完成。SQL> call dataxf_oraclejob();调用完成。SQL> commit;提交完成。
    1  begin
      2  dbms_job.submit(:v_jobnum,'dataxf_oraclejob();',sysdate,'sysdate+(1/60/24)');
      3* end;
    SQL> /PL/SQL 过程已成功完成。SQL> commit;提交完成
    上面的开始时间是当前时间
    间隔时间是一分钟!
      

  2.   

    VARIABLE
    这个是什么意思?
    不好意思没有搞定?:(
    CREATE OR REPLACE PROCEDURE dataxf_oraclejob
    as
    BEGIN
    UPDATE NewsDB SET Sorted =sorted+ '1' WHERE Sorted = '2';
    END;
    /VARIABLE v_jobnum NUMBER
    begin
    dbms_job.submit(:v_jobnum,'dataxf_oraclejob();',sysdate,'sysdate+(1/60/24)');
    end;
    /
      

  3.   

    如果我要吧这个时间改成每天的这个时候呢?
    dbms_job.submit(:v_jobnum,'dataxf_oraclejob;',to_date('2001-12-31 9:25:00','yyyy-mm-dd hh24:mi:ss'),'');
      

  4.   

    已经搞定了,可以自动的更新了。
    谢谢你
    我马上给你分
    不好意思再问你一个问题:
    我要吧时间定为每天早上的8点,如何写?VARIABLE
    这个是什么意思?
      

  5.   

    variable 所定义的变量只能在sql块里使用!也只有在sql块里才能这样定义变量!
      1  begin
      2  dbms_job.submit(:v_jobnum,'dataxf_oraclejob();',sysdate+(7/24-12/60/24),'sy
    sdate+(7/24-12/60/24)+1/2');
      3* end;
    SQL> /
    PL/SQL 过程已成功完成。
    sysdate=13:12
    上面写的是每天早上八点执行!开始时间是中午一点十二分!