为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:麒麟操作系统,X86的centos版本也会挂
【CPU】:鲲鹏芯片
初步排查到的原因是因为INTEGER 这个类型的问题,用NUMBER替换所有的不会挂
【问题描述】*:
CREATE OR REPLACE TYPE bit_or_agg_type AS OBJECT (
bit_or_result INTEGER,
STATIC FUNCTION ODCI***(sctx IN OUT bit_or_agg_type)
RETURN INTEGER,
……
);
CREATE OR REPLACE TYPE BODY bit_or_agg_type IS
STATIC FUNCTION ODCI***(sctx IN OUT bit_or_agg_type)
RETURN INTEGER IS
BEGIN
sctx := bit_or_agg_type(NULL);
RETURN ODCIConst.Success;
END;
……
END;
CREATE OR REPLACE FUNCTION bit_or(input INTEGER) RETURN INTEGER
PARALLEL_ENABLE AGGREGATE USING bit_or_agg_type;
上面是自定义的聚合函数部分内容示例
SELECT
A.menu_path,
bit_or( A.item_id ) AS bit_privilege
FROM
cs_new_test_item
A INNER JOIN cs_new_test b ON A.menu_path = b.PATH
WHERE
b.menu_type = 2
AND ( b.filed_type & 2 = 2 )
AND b.filed_type & 1 = 0
GROUP BY
A.menu_path,
完整sql已反馈达梦官方
感谢您的反馈!你的环境非常齐全,且问题切实存在;—— 对于这类问题,我们未能第一时间反馈你,我们感到很抱歉!
对您造成的困扰,我们深表歉意。