编写了一个过程,如下
CREATE OR REPLACE PROCEDURE SP_CREATE_new_table
 Authid Current_User 
 Is v_a   Varchar2(30);
v_sql1 Varchar2(100);
 
begin 
v_a:='yyea';
Declare
Begin
v_sql1 :='create table  '||v_a||' as select * from yy where 0=1';
Execute  Immediate v_sql1;
Commit;
End;
Declare
Begin
Execute  Immediate('Alter Table '|| v_a ||' add Constraint  '|| v_a||'pk'|| ' primary key(username)');
End;
End;
用下列语句直接执行过程
Declare
Begin
SP_CREATE_new_table;
End;
成功。但是使用jobs想自动该程序时其视图语句如下:
begin
  sys.dbms_job.change(job => 22,
                      what => 'sp_create_new_table;',
                      next_date => to_date('28-03-2010 09:19:32', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'sysdate+1');
  commit;
end;
执行失败,查看错误信息,如下请问该如何解决?如果想2010年4月3号开始执行,以后每个月执行一次,时间间隔该如何设置?

解决方案 »

  1.   

    嗯?为什么图没有出现?其错误信息为
    error running job 21:
    ora-12011:无法执行1作业
    ora-06512:在"sys.dbms_ijob",line406
    ora-06512:在"sys.dbms_job",line272
    ora-06512:在line1
      

  2.   

    ora-06512:在"sys.dbms_ijob",line406
    有这个包吗?标记的这个
      

  3.   

    你是不是用错方法了?
    sys.dbms_job.change(job =
    该用  Run()过程或者Submit()过程吧,我个人感觉。