为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:
【CPU】:
【问题描述】*:执行alter function 函数名 compiles无效的数据类型
我自定义了一个函数,提示 警告:创建的对象带有编译错误。
自定义函数语句:
CREATE OR REPLACE FUNCTION UUID_TO_BIN(_uuid varchar(36),_hasSort tinyint(1)) RETURN binary(16) DETERMINISTIC as res binary(16);
BEGIN
if _hasSort = 1 then
RETURN UNHEX(CONCAT(
SUBSTR(_uuid, 15, 4),
SUBSTR(_uuid, 10, 4),
SUBSTR(_uuid, 1, 8),
SUBSTR(_uuid, 20, 4),
SUBSTR(_uuid, 25) ));
ELSE
RETURN UNHEX(REPLACE(_uuid,'-',''));
END if;
END;
tinyint类型后面不要接精度数字。使用如下的代码段重新编译一下:
CREATE OR REPLACE
FUNCTION UUID_TO_BIN
(_uuid varchar(36),_hasSort tinyint)
RETURN binary(16) DETERMINISTIC
as
res binary(16);
BEGIN
if _hasSort = 1 then
RETURN UNHEX(CONCAT( SUBSTR(_uuid, 15, 4), SUBSTR(_uuid, 10, 4), SUBSTR(_uuid, 1, 8), SUBSTR(_uuid, 20, 4), SUBSTR(_uuid, 25) ));
ELSE
RETURN UNHEX(REPLACE(_uuid, '-', ''));
END if;
END;