【 使用环境 】生产环境
【 OB or 其他组件 】OB
【 使用版本 】2.2.77 企业版
【问题描述】想了解一下OB的mysql模式,在存过中捕获异常,如果获取sql异常的编码和信息?
【附件】
【 使用环境 】生产环境
【 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;
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,查询
这个只能在控制台显示,如果在存过中获取并插入自定义表中
存储过程中没有办法