相关文章推荐
留胡子的西瓜  ·  jacksonxmlproperty - ...·  3 月前    · 
刀枪不入的啄木鸟  ·  javascript - ...·  1 年前    · 

甲骨文(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