为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:7
【操作系统】:
【CPU】:
【问题描述】*:
无法解析的成员访问表达式[ODCICONST.SUCCESS]
参考了社区 自定义分析函数的帖子提示 以上错误 ,参考帖子如下
https://eco.dameng.com/community/article/76544b894aaffadd183cbdf127f2b8ee
以下是源碼
CREATE OR REPLACE TYPE t_string_agg AS OBJECT
(
g_string VARCHAR2(32767),
STATIC FUNCTION ODCIAggregateInitialize(sctx IN OUT t_string_agg)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateIterate(self IN OUT t_string_agg,
value IN VARCHAR2 )
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateTerminate(self IN t_string_agg,
returnValue OUT VARCHAR2,
flags IN NUMBER)
RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateMerge(self IN OUT t_string_agg,
ctx2 IN t_string_agg)
RETURN NUMBER
);
create or replace type agg_string is VARRAY(100) of varchar2;
CREATE OR REPLACE TYPE BODY t_string_agg IS
STATIC FUNCTION odciaggregateinitialize(sctx IN OUT t_string_agg)
RETURN NUMBER IS
BEGIN
sctx := t_string_agg(null);
RETURN emc_system.odciconst.success;
END;
FUNCTION odciaggregateiterate(self IN OUT t_string_agg,
value IN VARCHAR2 )
RETURN NUMBER IS
BEGIN
SELF.g_string := self.g_string || ‘,’ || value;
RETURN emc_system.odciconst.success;
END;
FUNCTION odciaggregateterminate(self IN t_string_agg,
returnValue OUT VARCHAR2,
flags IN NUMBER)
RETURN NUMBER IS
BEGIN
returnValue := SUBSTR(SELF.g_string, 2);
RETURN emc_system.odciconst.success;
END;
FUNCTION odciaggregatemerge(self IN OUT t_string_agg,
ctx2 IN t_string_agg)
RETURN NUMBER IS
BEGIN
SELF.g_string := SELF.g_string || ctx2.g_string;
RETURN emc_system.odciconst.success;
END;
END;
技术人员回复需要加上用户名 ,但是还是不行
已修改return 1 ,但是在调用过程中出现 执行[DCIAggregateInitialize]调用失败
,急急急 ,求大神看看,可以的话请大神们提供一份完整的demo,采用发帖的方式交流实在影响效率
好的,你这家伙一个问题发了太多贴了,结一下题。
正确答案:
RETURN emc_system.odciconst.success; 修改为
RETURN 0;
这个自定义的分析函数想实现什么功能?怎么调用的,报什么错?