Java db2调用一个过程并从另一个过程接收引发的错误

Java db2调用一个过程并从另一个过程接收引发的错误,java,db2,signals,procedure,sqlexception,Java,Db2,Signals,Procedure,Sqlexception,我正在从java调用一个db2存储过程(p1) 此过程在一个表上进行一些插入,该表在插入后有一个触发器。触发器调用另一个过程(p2),该过程引发异常“SIGNAL SQLSTATE”50000“SET MESSAGE_TEXT=”一个错误“ 我被调用的db2过程运行成功,在java调用者中不应该得到SQLException。但在java代码中,我收到sqlexception,就好像过程p1引发了它一样 db2为什么会这样做?我如何防止它 后期编辑 另一件事可能发生 数据库上的db intern

我正在从java调用一个db2存储过程(p1)

此过程在一个表上进行一些插入,该表在插入后有一个触发器。触发器调用另一个过程(p2),该过程引发异常“SIGNAL SQLSTATE”50000“SET MESSAGE_TEXT=”一个错误“

我被调用的db2过程运行成功,在java调用者中不应该得到
SQLException
。但在java代码中,我收到sqlexception,就好像过程p1引发了它一样

db2为什么会这样做?我如何防止它


后期编辑

另一件事可能发生

数据库上的db internal kitchen中可能会出现一些问题,所以当我调用过程时,db2实际上会执行过程p2

不幸的是,我无法访问发生问题的系统,所以我只能询问发生了什么


您认为哪种情况更合理?

您确定这是一个触发器,并且第二个过程作为单独的任务运行吗

我想您的过程代码是这样的:

procedure1()
begin
//do smth
result = procedure2();
//do smth else
end

这就是为什么会出现异常。

我收到该错误,因为过程P1向具有触发器T1的表中插入了一个。该触发器调用引发异常的过程P2。在java代码中,我调用过程P1并捕获过程P2引发的异常。我刚刚测试了这个场景。这正常吗?是的,这似乎正常。如果触发器失败,那么如果没有错误处理,整个事务将失败。感谢您的及时响应。我还有一个问题。如何在P1过程中捕获P2过程引发的错误?(我需要在表中设置一些状态)。