Ошибка при выполнении хранимой процедуры (ожидаемая: ошибка)

#sql #oracle #stored-procedures #triggers

#sql #Oracle #хранимые процедуры #срабатывает

Вопрос:

Я пытаюсь выполнить уже определенную хранимую процедуру внутри триггера. Когда я попытался выполнить приведенный ниже фрагмент кода, я получаю эту ошибку :

 ERROR line 22, col 9, ending_line 22, ending_col 22, Found 'pat_lines_proc',
Expecting: ;   -or-   :=   -or-   .  -or-   (   -or-   @   -or-   ROW
  

Вот как я вызываю процедуру внутри триггера и получаю вышеупомянутую ошибку:

 create or replace trigger pat_lines_trig 
after insert on pat_headers_all 
for each row
begin
   call pat_lines_proc (amp;p_lineno,amp;p_diseasename,amp;p_PAT_HEADERS_ID);
end;
/
  

Вот как я определил эту процедуру, и этот фрагмент кода работал нормально:

 Create or Replace procedure pat_lines_proc(
p_lineno in pat_lines.LINE_NO%type, 
p_diseasename in pat_lines.DISEASE_NAME%type,
p_pat_headers_id in pat_lines.PAT_HEADERS_ID%type
)
is
begin 
insert into pat_lines 
values(
pat_lines_seq.nextval,
p_lineno,
p_diseasename,
p_pat_headers_id
);
end pat_lines_proc;
  

Что, кажется, здесь не так?

Ответ №1:

Я принял имена столбцов, поэтому замените правильные имена столбцов при передаче значений в процедуру, попробуйте создать свой триггер как

 CREATE OR REPLACE TRIGGER pat_lines_trig
   AFTER INSERT
   ON pat_headers_all
   FOR EACH ROW
BEGIN
   pat_lines_proc (:new.p_lineno, :new.p_diseasename, :new.p_PAT_HEADERS_ID);
END;
/