大家帮我看看这个怎么错了
Create Or Replace Trigger Trigger_TOS_D_PATIENT_PAST
  After Insert Or Update On TOS_D_PATIENT_PAST For Each Row
Begin
   If Inserting Then
      DECLARE RNT INT := 0;
      BEGIN
           SELECT COUNT(1) INTO rnt from tos_d_patient_info_summary t where t.patient_id = :new.patient_id;
           if(rnt>0) then
               update tos_d_patient_info_summary t  
               set  
               t.knj_kiorrk = TOS_SP_PATIENTINFOMNGDATA.FILL_KNJKIORRK(:new.patient_id) where t.patient_id = :new.patient_id;
           else  
               Insert Into tos_d_patient_info_summary(patient_id,knj_kiorrk) Values(:new.patient_id,TOS_SP_PATIENTINFOMNGDATA.FILL_KNJKIORRK(:new.patient_id));
           end if;
      END;
   Elsif Updating Then
       update tos_d_patient_info_summary T  
       set  
       T.KNJ_KIORRK=TOS_SP_PATIENTINFOMNGDATA.FILL_KNJKIORRK(:old.PATIENT_ID),
       t.knj_allergy =TOS_SP_PATIENTINFOMNGDATA.FILL_KNJALLERGY(:old.PATIENT_ID),
       t.knj_kansen =TOS_SP_PATIENTINFOMNGDATA.FILL_KNJKANSEN(:old.PATIENT_ID)
       where t.patient_id=:old.PATIENT_ID;
   End If;
End;
当我向表tos_d_patient_past插入值的时候, 提示错误,,请问怎么错了啊
如果没有触发器,是可以插入的,
报:ORA-04091  0RA-06512  ORA-06512  ORA-04088错误
------解决方案--------------------
TOS_SP_PATIENTINFOMNGDATA.FILL_KNJKIORRK(:new.patient_id)
这是个啥,函数? 又操作本身依附的表了吧。