SQL> create table aa(a number,b date);Table createdSQL> 
SQL> create or replace procedure pro
  2  is
  3  begin
  4  insert into aa values(1,sysdate);
  5  end;
  6  /Procedure createdQL> declare
  2  jobno number;
  3  begin
  4  dbms_job.submit(jobno,'pro;',sysdate,'sysdate+1/(24*60)');
  5  commit;
  6  end;
  7  /

解决方案 »

  1.   

    这个过程我也知道,可是不知道为什么我在建立存储过程的时候直接就是这样的错误:Warning: Procedure created with compilation errors.能不能将这个定时操作做成一个函数阿
      

  2.   

    你写的存储过程有问题,
    show error命令显示详细信息
      

  3.   

    我用了一个最简单的作为例子实现的
    如下:
    create or replace procedure test as
    update sp_env_table
    set env_flag = 1;
    end;
    这是一个最简单的存储过程,仍然出现如下错误:
    Warning: Procedure created with compilation errors.
      

  4.   

    create or replace procedure test is
    begin
    update sp_env_table
    set env_flag = 1
    commit;
    end;
      

  5.   

    少begin :)
    而且建议加commit
      

  6.   

    对了,这个简单的存储过程就是有问题,这是一个简单的测试例子
    我用d2000写了一个存储过程,(带参数),现在我想按照beckhambobo(beckham) 的过程实现定时操作,但是,我不想这样再SQL提示符下一步一步实现,有没有办法!!!
      

  7.   

    SQL> declare
      2  jobno number;
      3  begin
      4  dbms_job.submit(jobno,'pro;',sysdate,'sysdate+1/(24*60)');
      5  commit;
      6  end;请问上边的sql实现的功能是不是一个小时后执行存储过程pro,而且只执行一次呢????如果要连续执行怎么办?
      

  8.   

    楼主的语句少了分号。

    update sp_env_table
    set env_flag = 1;
    。带参数也可以,但要参数每次执行不同值,那就详细考虑了。我的那个是每分钟执行一次.
      

  9.   

    to  beckhambobo(beckham) 
    谢谢指点
    正是因为每次要执行不同的值,所以我带了参数,这也是我一直没有调试通过的地方,而且,我想最好能有一个能长期存放的程序来完成这些功能,当系统启动时,其自动启动,而不用每次系统重新启动时都需要重新操作!
    麻烦你了!!!
      

  10.   

    to  beckhambobo(beckham)你的那个定时执行只执行了一次!!!
      

  11.   

    利用sysdate这种变量实现参数变化。
      

  12.   

    dbms_job.submit(jobno,
    'declare 
    a number:=10;
    begin
    for i in 1..a loop
    exec pro(i);
    end loop;
    end;',sysdate,'sysdate+1/(24*60)');没有测试,自已试多几篇吧.
      

  13.   

    to beckhambobo(beckham)非常感谢!!!
      

  14.   

    sorry,搞错了,要用时间控制,上面的方法行不通。暂时想不出。