OB如何在存过和函数中获取异常信息

【 使用环境 】生产环境
【 OB or 其他组件 】OB
【 使用版本 】2.2.77 企业版
【问题描述】想了解一下OB的mysql模式,在存过中捕获异常,如果获取sql异常的编码和信息?

【附件】

能否详细描述一下你问题吗?异常写截图有没有?

在捕获异常后,如果获取到错误的编码和错误信息,我需要插入到日志表中?

DECLARE CONTINUE HANDLER FOR sqlexception
begin
 
   set error_no = ?;
   set  error_message=?;
   insert into error_log values(error_no,error_message);
end

跟mysql是一致的,set error_no=MYSQL_ERRNO; set error_message=MESSAGE_TEXT;

1 个赞

DECLARE CONTINUE HANDLER FOR sqlexception
begin

set error_no = MYSQL_ERRNO;
set error_message=MESSAGE_TEXT;
insert into error_log values(error_no,error_message);
end

不能获取到错误信息,提示SQL错误[1327][42000]: Undeclared variable: MYSQL_ERRNO.
我使用的是2.2.77企业版mysql模式。

2277版本不支持GET DIAGNOSTICS等语句在handler内部获取错误信息,可以考虑采用show warnings/show errors查询错误信息

可以具体一点吗?
show errors的信息如何在存过中捕获?

就是执行show warnings或者show errors,查询

这个只能在控制台显示,如果在存过中获取并插入自定义表中

存储过程中没有办法