大家帮我看看这个怎么错了
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)
这是个啥,函数? 又操作本身依附的表了吧。