Тело пакета дает ошибки компиляции. Я не знаю почему. Пожалуйста, помогите мне - PullRequest
0 голосов
/ 24 апреля 2019

Пакет создан успешно.Но когда дело доходит до тела пакета, оно выдает «Тело пакета, созданное с ошибкой компиляции». Но я не вижу никакой ошибки.

Ошибка похожа на ORA-04063: тело пакета «VENDORDB.P_ENLD0055_VA» имеетошибки ORA-06508: PL / SQL: не удалось найти вызываемый программный модуль: "VENDORDB.P_ENLD0055_VA"

Я попытался дать избыточное количество гранта для пользователя и для обновления базы данных, но ошибка все еще не разрешена

create or replace package vendordb.p_enld0055_va is


PROCEDURE sp_group_id_update(p_batch_id NUMBER,
                           p_file_name VARCHAR2,
                           p_group_id VARCHAR2);    

end p_enld0055_va;
 /

 create or replace package body vendordb.p_enld0055_va is

 PROCEDURE sp_group_id_update(p_batch_id NUMBER,
                           p_file_name VARCHAR2,
                           p_group_id VARCHAR2) is

 v_batch_id VARCHAR2(100)     :=  p_batch_id;
 v_file_name VARCHAR2(100)    :=  p_file_name;
 v_group_id VARCHAR2(100)     :=  p_group_id;

 type t_TBL_row_ID IS TABLE OF ROWID;

 v_row_ID t_TBL_row_ID;

 cursor CUR_PPL is
 select
 h.rowid
 from VENDORDB.CLAIM_PROF_HDR h
 where batch_id = v_batch_id ;

 Begin

 open CUR_PPL;
  loop
       fetch CUR_PPL
          bulk  collect into v_row_ID
         limit 1000
        ;
    exit when v_row_ID.count()=0;

  forall i in 1 .. v_row_ID.count()

 UPDATE VENDORDB.CLAIM_PROF_HDR h
 SET group_id = CASE
                      WHEN EXISTS (select file_name from 
  nemis.file_control where batch_id = v_batch_id and file_name like 
  v_file_name) THEN v_group_id
                      ELSE NULL
                 END
  where h.rowid = v_row_ID(i);
  commit;
  end loop;
  close CUR_PPL ;

 EXCEPTION
 WHEN OTHERS THEN
 DBMS_OUTPUT.PUT_LINE('UNEXPECTED ERROR OCCURED');
  ROLLBACK;
  end;
 end p_enld0055_va;
 /
...