Oracle Триггер с последующим предложением выбрасывает переменную из области видимости - PullRequest
0 голосов
/ 29 апреля 2020

Я создал триггер, который будет следовать за другим триггером. Этот триггер сработает, когда проблема будет вставлена ​​в таблицу p_it_issues, и утверждающий 1 (p_it_people.approver = 'уровень утверждающего 1' из того же отдела получит уведомление по электронной почте, чтобы одобрить проблему на первом уровне). Я получаю курсор из области действия ошибки в этом триггере:

CREATE OR REPLACE EDITIONABLE TRIGGER  "P_IT_ISSUES_AIU_Notify_Approver_1" 
AFTER 
insert on P_IT_ISSUES 
for each row 
FOLLOWS P_IT_ISSUES_AIU_EMAIL
declare
v_person_id number;
v_email varchar2(255);
v_dept_name varchar2(50);
begin
select p.person_id ,p.person_email,i.dept_name into v_person_id,v_email,v_Dept_name from p_it_people p,p_it_departments i 
where p.assigned_dept=i.dept_id and i.dept_id=:new.related_dept_id and p.approver='Approver 1'  ;

             APEX_MAIL.SEND( 
                 p_to => p.person_email, 
                 p_from => p.person_email, 
                 p_body =>  
                 'You have been assigned a new issue for first level approval.  ' ||chr(10)|| 
                 'The details are below. ' ||chr(10)|| 
                 chr(10)|| 
                 ' Department:'|| i.dept_name ||chr(10)|| 
                 ' Summary: '||:new.issue_summary ||chr(10)|| 
                 ' Status: '||:new.status ||chr(10)|| 
                 'Priority: '||nvl(:new.priority,'-'), 
                  p_subj => 'New Issue for First Level Approval'); 


end; 

Кроме того, причина, по которой он следует за предложением, заключается в том, что триггер до этого также после вставки в таблицу p_it_issues, чтобы уведомить уполномоченного по проблеме о том, что проблема имеет был назначен, поэтому, чтобы избежать мутации, я создал этот триггер, используя следующее предложение.

...