我正在从java调用db2存储过程(p1)。
此过程在表上进行一些插入,插入后有一个触发器。触发器调用另一个过程(p2),引发异常'SIGNAL SQLSTATE'50000'SET MESSAGE_TEXT ='错误';
我的被叫db2过程成功运行,我不应该在java调用者中获得SQLException
。但是我的java代码,我收到了sqlexception,好像过程p1已经引发了它。
为什么db2会像这样起作用,如何防止它?
稍后编辑
另一件事可能发生。
在该数据库的db internal kitchen中可能会出现问题,所以当我调用过程时,db2实际执行过程p2。
不幸的是,我无法访问发生问题的系统,所以我只能质疑发生了什么。
您怎么看?哪种情况更合理?
答案 0 :(得分:0)
您确定它是一个触发器,第二个程序是作为一个单独的任务运行吗?
我想你的程序代码是这样的:
procedure1()
begin
//do smth
result = procedure2();
//do smth else
end
这就是你得到例外的原因。