要修改某个JOB的执行情况,没有JOB的所属用户,怎么办?
用 dbms_ijob这个系统包(用户有执行权限)
执行下面脚本即可,执行前需要修改一下job号和下次执行时间这两个参数。
BEGIN
sys.Dbms_Ijob.next_date(1112,to_date('15-05-2013 02:00:00', 'dd-mm-yyyy hh24:mi:ss'));
END;
*********************************************
以下内容来自 http://blog.chinaunix.net/uid-23284114-id-3347118.html
总结:
1.dbms_job只能在当期用户内创建job、修改和删除job,不能对其他用户的job进行操作;sys用户也无法用dbms_job管理其他用户的job。
2.dbms_ijob只能由sys用户去执行,拥有DBA权限的用户都没有权限去执行它。
3.通过dbms_ijob sys用户可以给其他用户创建job,且job在该用户下,在该用户内可以通过user_jobs视图看到。
4.通过dbms_ijob sys用户能够对其他用户中的job进行删除、修改。
5.sys用户通过dbms_ijob给X用户创建job,那么X用户对该job拥有修改和删除的权限。
dbms_ijob书写格式:
1.创建job
begin
dbms_ijob.submit(jobnu,' LUSER ',' PUSER ',' CUSER ',
next day,'interval',false,'procedure_name;',
'NLS_LANGUAGE=''SIMPLIFIED CHINESE'' NLS_TERRITORY=''CHINA'' '||
'NLS_CURRENCY=''¥'' NLS_ISO_CURRENCY=''CHINA'' '||
'NLS_NUMERIC_CHARACTERS=''.,'' '||
'NLS_DATE_FORMAT=''YYYY-MM-DD HH24:MI:SS'' '||
'NLS_DATE_LANGUAGE=''SIMPLIFIED CHINESE'' NLS_SORT=''BINARY'' ',
'0102000200000000');
commit;
end;
/
2.执行job
exec dbms_ijob.run(jobnumber);
3.修改job的间隔时间(interval)
exec dbms_ijob.interval(5,'sysdate+2');
4.修改job的下次执行时间
exec dbms_ijob.next_date(5,sysdate+5);
5.中断job
exec dbms_ijob.broken(5,true);
6.删除job
exec dbms_ijob.remove(5);