en_concat函数编译失败处理

来源:这里教程网 时间:2026-03-03 17:55:20 作者:

近日,某项目组反馈en_concat函数编译报错 处理方法:一、创建type:CREATE OR REPLACE TYPE "EN_CONCAT_IM"   AUTHID CURRENT_USER AS OBJECT   (     CURR_STR VARCHAR2(32767),     STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT en_concat_im) RETURN NUMBER,     MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT en_concat_im,           P1 IN VARCHAR2) RETURN NUMBER,     MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN en_concat_im,                 RETURNVALUE OUT VARCHAR2,                 FLAGS IN NUMBER)           RETURN NUMBER,     MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT en_concat_im,          SCTX2 IN  en_concat_im) RETURN NUMBER   );  二、创建type body CREATE OR REPLACE TYPE BODY "EN_CONCAT_IM"    IS      STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT en_concat_im)      RETURN NUMBER      IS      BEGIN       SCTX := en_concat_im(NULL) ;       RETURN ODCICONST.SUCCESS;      END;      MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT en_concat_im,             P1 IN VARCHAR2)      RETURN NUMBER      IS      BEGIN       IF(CURR_STR IS NOT NULL) THEN         CURR_STR := CURR_STR || ',' || P1;       ELSE         CURR_STR := P1;       END IF;       RETURN ODCICONST.SUCCESS;      END;      MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN en_concat_im,                  RETURNVALUE OUT VARCHAR2,                  FLAGS IN NUMBER)       RETURN NUMBER      IS      BEGIN       RETURNVALUE := CURR_STR ;       RETURN ODCICONST.SUCCESS;      END;      MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT en_concat_im,              SCTX2 IN en_concat_im)      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;  三、重新编译en_concat函数

相关推荐