注册
达梦数据库-错误码-[-5015]-分析处理
专栏/技术分享/ 文章详情 /

达梦数据库-错误码-[-5015]-分析处理

fyu 2024/07/19 1029 0 0
摘要

错误码:-5015
错误内容:CLASS类型被引用
错误级别: ERROR
原因:要修改的对象引用导致无法修改

CREATE OR REPLACE TYPE hs_cop_concat AUTHID CURRENT_USER AS OBJECT ( CURR_STR VARCHAR2(4000), STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT hs_cop_concat) RETURN NUMBER, MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT hs_cop_concat, sField IN VARCHAR2) RETURN NUMBER, MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN hs_cop_concat, RETURNVALUE OUT VARCHAR2, FLAGS IN NUMBER) RETURN NUMBER, MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT hs_cop_concat, SCTX2 IN hs_cop_concat) RETURN NUMBER ) / CREATE OR REPLACE TYPE BODY hs_cop_concat IS STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT hs_cop_concat) RETURN NUMBER IS BEGIN SCTX := hs_cop_concat(NULL) ; RETURN ODCICONST.SUCCESS; END; MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT hs_cop_concat, sField IN VARCHAR2) RETURN NUMBER IS BEGIN IF(CURR_STR IS NOT NULL) THEN CURR_STR := CURR_STR || ',' || sField; ELSE CURR_STR := sField; END IF; RETURN ODCICONST.SUCCESS; END; MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN hs_cop_concat, RETURNVALUE OUT VARCHAR2, FLAGS IN NUMBER) RETURN NUMBER IS BEGIN RETURNVALUE := CURR_STR ; RETURN ODCICONST.SUCCESS; END; MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT hs_cop_concat, SCTX2 IN hs_cop_concat) RETURN NUMBER IS BEGIN IF(SCTX2.CURR_STR IS NOT NULL) THEN SELF.CURR_STR := SELF.CURR_STR || ',' || SCTX2.CURR_STR ; END IF; RETURN ODCICONST.SUCCESS; END; END; / CREATE OR REPLACE FUNCTION sf_cop_concat(sField VARCHAR2) RETURN VARCHAR2 AGGREGATE USING hs_cop_concat ; /

2、修改自定义对象的类型

CREATE OR REPLACE TYPE hs_cop_concat AUTHID CURRENT_USER AS OBJECT ( CURR_STR VARCHAR2(1000), STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT hs_cop_concat) RETURN NUMBER, MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT hs_cop_concat, sField IN VARCHAR2) RETURN NUMBER, MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN hs_cop_concat, RETURNVALUE OUT VARCHAR2, FLAGS IN NUMBER) RETURN NUMBER, MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT hs_cop_concat, SCTX2 IN hs_cop_concat) RETURN NUMBER ) 执行失败(语句1) -5015: CLASS类型被引用

解决方法
1、删除自定义对象,重新创建

drop type hs_cop_concat cascade; CREATE OR REPLACE TYPE hs_cop_concat AUTHID CURRENT_USER AS OBJECT ( CURR_STR VARCHAR2(1000), STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT hs_cop_concat) RETURN NUMBER, MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT hs_cop_concat, sField IN VARCHAR2) RETURN NUMBER, MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN hs_cop_concat, RETURNVALUE OUT VARCHAR2, FLAGS IN NUMBER) RETURN NUMBER, MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT hs_cop_concat, SCTX2 IN hs_cop_concat) RETURN NUMBER )
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服