有没有人能告诉我,这是什么状况?
异常处理
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;