DBMS_JOB,dbms_ijob用法

本文介绍Oracle数据库中DBMS_JOB与DBMS_IJOB包的使用区别,特别是当需要操作不属于当前用户拥有的任务时。通过示例展示了如何使用DBMS_IJOB来标记其他用户的job为失效状态,并提供了普通用户与sys用户操作job的不同方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dbms_job只能在job的所在用户使用,如果broken其它用户的job用dbms_ijob

LGEHNP:/data01/app/oracle/product/9.2.0> sqlplus "/as sysdba"

SQL*Plus: Release 9.2.0.8.0 - Production on Mon Aug 9 13:54:15 2010

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production

SQL> Exec dbms_job.broken(483,True);
BEGIN dbms_job.broken(483,True); END;
*
ERROR at line 1:
ORA-23421: job number 483 is not a job in the job queue
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.DBMS_IJOB", line 529
ORA-06512: at "SYS.DBMS_JOB", line 245
ORA-06512: at line 1

SQL> Exec dbms_ijob.broken(483,True);
PL/SQL procedure successfully completed
SQL> commit;

SQL> Select job,broken From Dba_Jobs
2 Where job=483;

JOB BROKEN
---------- ------
483 Y

注:dbms_ijob.remove过程也同样

--sys用户删除其他用户job

BEGIN sys.dbms_ijob.remove(:job); END;
--普通用户删除自己创建的job

BEGIN dbms_job.remove(:job); END;


select * from dba_jobs/user_jobs;

SQL> grant execute on dbms_ijob to a;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值