Plsql

獲取 PL/SQL:ORA-00942:plsql 函式中不存在表或視圖,但命令視圖中不存在

  • July 16, 2019

我有一個游標功能讀取 dba_scheduler_jobs 這是一個視圖。如何在游標中使用視圖?

create or replace function fn_gss_chk_scheduled_jobs(p_key IN varchar2)
 return boolean is
 --Result     boolean;
 failed_cnt number;
 stas       varchar2(20);
 check_type varchar2(50) := 'Scheduled Jobs';

 cursor c1 is

   select JOB_NAME, COMMENTS
     from dba_scheduler_jobs
    where owner = 'FCUBSPROD'
      AND state <> 'SCHEDULED'
      AND state <> 'RUNNING';

begin

 for rec in c1 loop

   IF c1%FOUND THEN
     Dbms_Output.Put_Line(Rec.Comments);
     stas := 'ERROR';
     pn_gss_update_dash_det(p_key, rec.job_name, rec.comments, 'D');

   ELSE

     stas := 'OK';
   END IF;
 end loop;

 pn_gss_update_dash_det(p_key, check_type, stas, 'S');

 return(true);
end fn_gss_chk_scheduled_jobs;

將 DBA_SCHEDULER_JOBS 上的選擇授予函式所在模式的所有者。

程式碼需要直接授予權限。

如果您以擁有該功能的使用者以外的使用者身份執行,您還必須將 fn_gss_chk_scheduled_jobs 上的執行權限授予 your_user;

從 sys 使用者 –> 授予選擇任何字典到“所需模式”;

引用自:https://dba.stackexchange.com/questions/116459