如函数
CREATE DEFINER=`root`@`localhost` FUNCTION `aaaaa`(
product_code_ varchar(20) ) RETURNS int(11)
BEGIN
DECLARE temp_ int;
DECLARE get_attr CURSOR FOR
SELECT freq_rate
FROM aaaaa_tab
AND product_code = product_code_;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET temp_ = NULL;
OPEN get_attr;
FETCH get_attr INTO temp_;
CLOSE get_attr;
RETURN temp_;
END
如果 其他存储过程,或者函数调用该函数,返回了空值, 就容易出现不明原因的报错 , 或者数据比较计算错误
可以设置一个中间变量接收,然后判断中间变量的值,再进行赋值处理
如:
有时候 直接用 (freq_rate = null)or(freq_rate = '') 做判断条件的时候, 莫名判断失败如下图