当前位置: 代码迷 >> DB2 >> 有没有人能告诉小弟我,这是什么状况
  详细解决方案

有没有人能告诉小弟我,这是什么状况

热度:10314   发布时间:2013-02-26 00:00:00.0
有没有人能告诉我,这是什么状况?
异常处理
DECLARE EXIT HANDLER FOR SQLWARNING,SQLEXCEPTION,NOT FOUND 
  BEGIN
  SET oi_return = SQLCODE;
  SET ov_msg = SQLSTATE;
  ROLLBACK;
  END;

Category Timestamp Duration Message Line Position
Statement 2012-11-1 12:00:47 0:00:00.468 Executed Successfully @OI_RETURN = -801, @OV_MSG = 00000 1 0

这里出现除零异常,但是为什么SQLSTATE为‘00000’。其他地方没有使用输出参数,定义的时候也没有指定默认值。



------解决方案--------------------------------------------------------
SET oi_return = SQLCODE;
这也是一条语句,执行了之后,SQLCODE和SQLSTATE就都变了。
SQLSTATE='00000',表示SET oi_return = SQLCODE语句执行成功。

为了防止被覆盖,你必须在一条语句中同时获取SQLCODE和SQLSTATE,可以这样写:
VALUES (SQLCODE,SQLSTATE) INTO oi_return, ov_msg;
  相关解决方案