这个小问题是怎么回事呢?

MySql 码拜 7年前 (2015-11-13) 581次浏览
本人写了一个mysql 存储过程,本人前面用DECLARE 定义了set _err为int类型默认为0,后面又用了下面方法
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND set _err=1;
本人在判断时候
if set_err =1 then
strReturn = “faliure”;
elseif
strReturn = “success”;

不管set_err的值为0还是别的,怎么都跳到 strReturn = “faliure”;呢?
解决方案:20分
这是原因是你打开了游标,当游标的数据被全部取出就会报NOT FOUND,你的值就变为1了,当然不排除你还有错误就会报SQLEXCEPTION, SQLWARNING,值又为1.所以这句有问题导致的
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION, SQLWARNING, NOT FOUND SET v_t_error = 1;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明这个小问题是怎么回事呢?
喜欢 (0)
[1034331897@qq.com]
分享 (0)