首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

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

2012-11-08 
有没有人能告诉我,这是什么状况?异常处理DECLARE EXIT HANDLER FOR SQLWARNING,SQLEXCEPTION,NOT FOUNDBEG

有没有人能告诉我,这是什么状况?
异常处理
DECLARE EXIT HANDLER FOR SQLWARNING,SQLEXCEPTION,NOT FOUND 
  BEGIN
  SET oi_return = SQLCODE;
  SET ov_msg = SQLSTATE;
  ROLLBACK;
  END;

CategoryTimestampDurationMessageLinePosition
Statement2012-11-1 12:00:470:00:00.468Executed Successfully @OI_RETURN = -801, @OV_MSG = 0000010

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



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

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

热点排行