为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:win10
【CPU】:i7
【问题描述】*:自定义函数创建的对象带有编译错误,原MySQL自定义函数转入达梦8
原MySQL函数如下:
CREATE DEFINER=external
@%
FUNCTION getChildrenOrganList
(rootId VARCHAR ( 1000 )) RETURNS varchar(1000) CHARSET utf8mb4 COLLATE utf8mb4_german2_ci
BEGIN
DECLARE
sTemp VARCHAR ( 1000 );
DECLARE
sTempChd VARCHAR ( 1000 );
SET sTemp = '';
SET sTempChd = cast( rootId AS CHAR );
WHILE sTempChd IS NOT NULL DO
SET sTemp = concat( sTemp, ',', sTempChd );
SELECT
group_concat( F_Id ) INTO sTempChd
FROM
base_organize
WHERE
FIND_IN_SET( F_ParentId, sTempChd )> 0;
END WHILE;
RETURN sTemp;
END
我修改并执行的达梦函数如下:
CREATE OR REPLACE FUNCTION getChildrenOrganList(rootId IN VARCHAR(1000))
RETURN VARCHAR(1000)
AS
sTemp VARCHAR(1000);
BEGIN
sTemp := ‘’;
sTempChd := cast( rootId AS VARCHAR(1000));
WHILE sTempChd IS NOT NULL
LOOP
sTemp :=CONCAT( sTemp, ‘,’, sTempChd );
SELECT
wm_concat( F_Id ) as sTempChd
FROM
base_organize
WHERE
FIND_IN_SET(F_ParentId,sTempChd) > 0;
END LOOP;
RETURN sTemp;
END;
我修改完之后提示:自定义函数创建的对象带有编译错误,但没有其他附属信息,请问如何进行修改
FIND_IN_SET这个函数在DM里自定义创建了吗?如果没有,达梦也没有内置这个函数
管理工具导航栏中鼠标右键点击“编译”会有详细的报错信息,或者alter function getChildrenOrganList compile;