编写了一个过程,如下
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号开始执行,以后每个月执行一次,时间间隔该如何设置?
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号开始执行,以后每个月执行一次,时间间隔该如何设置?
error running job 21:
ora-12011:无法执行1作业
ora-06512:在"sys.dbms_ijob",line406
ora-06512:在"sys.dbms_job",line272
ora-06512:在line1
有这个包吗?标记的这个
sys.dbms_job.change(job =
该用 Run()过程或者Submit()过程吧,我个人感觉。