注册

执行[DCIAggregateInitialize]调用失败 +无法解析的成员访问表达式[ODCICONST.SUCCESS]

DM_616773 2022/05/10 1012 2 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:7
【操作系统】: cento 7
【CPU】:
【问题描述】*:执行[DCIAggregateInitialize]调用失败
我本地试用的DM 7 只安装了客户端(Win10),数据库实例安装在 centos服务器上,
之前一位大神让我吧 return ODCIConst.Success; 改成 return 1 ;
现在该回去依然不行,是我本地少安装了什么吗?
以下是源码可以在直接使用
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 BODY t_string_agg IS
STATIC FUNCTION ODCIAggregateInitialize(sctx IN OUT t_string_agg)
RETURN NUMBER IS
BEGIN
sctx := t_string_agg(NULL);
RETURN 1;
END;

MEMBER FUNCTION ODCIAggregateIterate(self IN OUT t_string_agg,
value IN VARCHAR2 )
RETURN NUMBER IS
BEGIN
SELF.g_string := self.g_string || ‘,’ || value;
RETURN 1;
END;

MEMBER FUNCTION ODCIAggregateTerminate(self IN t_string_agg,
returnValue OUT VARCHAR2,
flags IN NUMBER)
RETURN NUMBER IS
BEGIN
returnValue := SUBSTR(SELF.g_string, 2);
RETURN 1;
END;

MEMBER 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 1;
END;
END;

CREATE OR REPLACE FUNCTION string_agg (p_input VARCHAR2)
RETURN VARCHAR2
PARALLEL_ENABLE AGGREGATE USING t_string_agg;

create table test_user( name varchar2(10));
insert into test_user values (‘kimi’);
insert into test_user values (‘tom’);
insert into test_user values (‘jerry’);
insert into test_user values (‘kitty’);

select STRING_AGG(name) from test_user;

请大神帮忙看下问题出在哪,不胜感激

回答 0
暂无回答
扫一扫
联系客服