甲骨文(oracle)数据库管理员账号(SYS)启用禁用其他账号作业(JOB)
一、作业环境
数据库:oracle 版本 10.2.0.5
工具:Oracle SQL Developer 版本17.2.0
二、操作
1. 查看作业
SQL>SELECT * FROM DBA_JOBS;
2. 找出要禁用的作业编号
若直接调用DBMS_JOB.Broken会报错。
BEGIN
dbms_job.broken(39, TRUE);
END;
错误信息
BEGIN
dbms_job.broken(39, TRUE);
错误报告 -
ORA-23421: job number 39 is not a job in the job queue
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.DBMS_IJOB", line 592
ORA-06512: at "SYS.DBMS_JOB", line 252
ORA-06512: at line 2
23421. 00000 - "job number %s is not a job in the job queue"
*Cause: There is no job visible to the caller with the given job number.
原因:给定的作业号对于调用者不可见。
*Action: Choose the number of a job visible to the caller.
行动:选择调用者可见的作业号码
错误截图
若使用DBMS_IJOB.BROKEN则会成功。
BEGIN
dbms_ijob.broken(39, TRUE);
END;
结果信息
PL/SQL 过程已成功完成。
截图
3. 启用作业
通过使用 DBMS_IJOB.RUN 启用作业。
语法:
BEGIN
dbms_ijob.run(39, true);
END;
结果:
PL/SQL 过程已成功完成。
若使用 DBMS_JOB.RUN 启用作业会失败。
BEGIN
DBMS_JOB.RUN(39,true);
错误报告 -
ORA-23421: job number 39 is not a job in the job queue
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.DBMS_IJOB", line 592
ORA-06512: at "SYS.DBMS_JOB", line 265