【 使用环境 】测试环境
OceanBase_v4.3.5.6
这是我的两个函数
DROP FUNCTION IF EXISTS testLeftFunc01;
DELIMITER //
CREATE DEFINER = root@% FUNCTION testLeftFunc01(str VARCHAR(255), maxLen INT(10)) RETURNS BIGINT UNSIGNED
BEGIN
DECLARE result VARCHAR(255) DEFAULT ‘’;
SET result = str;
IF LENGTH(result) > maxLen THEN
SET result = LEFT(result, maxLen);
END IF;
RETURN CAST(result AS UNSIGNED);
END//
DELIMITER ;
SELECT testLeftFunc01(“123”,10);
DROP FUNCTION IF EXISTS testLeftFunc02;
DELIMITER //
CREATE DEFINER = root@% FUNCTION testLeftFunc02(str VARCHAR(255), maxLen INT(10)) RETURNS BIGINT UNSIGNED
BEGIN
DECLARE result VARCHAR(255) DEFAULT ‘’;
SET result = str;
IF LENGTH(result) > maxLen THEN
SET result = SUBSTRING(result, 1, maxLen);
END IF;
RETURN CAST(result AS UNSIGNED);
END//
DELIMITER ;
SELECT testLeftFunc02(“123”,10);
执行testLeftFunc01这个会报错
执行testLeftFunc02有可以

这个是为什么了
