1.可以用于记录错误日志

在前一个存储过程中,如果创建bom失败,将执行存储过程2写入错误信息,自治事务的提交,不影响主存储过程1,回滚存储过程1,也不影响自治事务存储过程2已保存的数据。

伪代码
存储过程1
-- 创建BOM Cretae_Bom(x_Return_Status => x_Return_Status, x_Msg_Count => x_Msg_Count, x_Msg_Data => x_Msg_Data, p_Organization_Code => Rec.h_Org_Code, p_Generate_Item_Num => l_Generate_Item_Num, p_Bom_Num => Rec.h_Bom_Num); If x_Return_Status <> 'S' Then Insert_Error(x_Msg_Count, x_Return_Status, x_Msg_Data); End If;
存储过程2
--写入日志
Procedure
Insert_Error(p_Num In Number, p_String1 In Varchar2, p_String2 In Varchar2) Is Pragma Autonomous_Transaction; Begin Insert Into Cux_Test Values (p_Num || p_String1 || '-' || p_String2); Commit; End Insert_Error;

 

posted on 2020-08-17 17:17  last2233  阅读(114)  评论(0)    收藏  举报