在存储过程中执行时,oracle dbms_scheduler.create_job()错误

时间:2019-03-21 11:12:46

标签: oracle stored-procedures plsql dbms-scheduler

通过匿名阻止创建作业正常:

begin
  SYS.DBMS_SCHEDULER.create_job(
  job_name    =>     'test_job',
  job_type    =>     'PLSQL_BLOCK',
  job_action  =>     'begin null; end;',
  enabled     =>     TRUE,
  auto_drop   =>      TRUE);
end;

结果:

  

PL / SQL过程成功完成。

通过存储过程创建作业:

create or replace procedure pr_create_job is
begin
  SYS.DBMS_SCHEDULER.create_job(
  job_name =>'test_job',
  job_type =>'PLSQL_BLOCK',
  job_action =>'begin null; end;',
  enabled     => TRUE,
  auto_drop   => TRUE);
end pr_create_job;

Begin
  pr_create_job;
End;

结果:

  

错误报告-ORA-27486:权限不足ORA-06512:在   “ SYS.DBMS_ISCHED”,行135 ORA-06512:在“ SYS.DBMS_SCHEDULER”,行   271 ORA-06512:位于第3行的“ PR_CREATE_JOB” ORA-06512:位于第2行   27486. 00000-“权限不足”

1 个答案:

答案 0 :(得分:0)

Kaushik Nayak所述,CREATE JOB特权是通过角色授予的,而不是直接授予用户的,而是直接授予用户的权限可以解决此错误。