orcale 函数wm_concat不存咋lob值使用zh_concat 替换

  1. create or replace TYPE zh_concat_im   
  2. AUTHID CURRENT_USER AS OBJECT  
  3. (  
  4.   CURR_STR VARCHAR2(32767),  
  5.   STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im) RETURN NUMBER,  
  6.   MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT zh_concat_im,   
  7.                P1 IN VARCHAR2) RETURN NUMBER,  
  8.   MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN zh_concat_im,  
  9.                                  RETURNVALUE OUT VARCHAR2,  
  10.                                  FLAGS IN NUMBER)  
  11.                      RETURN NUMBER,  
  12.   MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT zh_concat_im,   
  13.                     SCTX2 IN  zh_concat_im) RETURN NUMBER  
  14. );  
  15. /  
  16.   
  17. create or replace TYPE BODY zh_concat_im  
  18. IS  
  19.   STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im)  
  20.   RETURN NUMBER   
  21.   IS  
  22.   BEGIN  
  23.     SCTX := zh_concat_im(NULL) ;  
  24.     RETURN ODCICONST.SUCCESS;  
  25.   END;  
  26.   MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT zh_concat_im,  
  27.           P1 IN VARCHAR2)   
  28.   RETURN NUMBER   
  29.   IS  
  30.   BEGIN  
  31.     IF(CURR_STR IS NOT NULL) THEN   
  32.       CURR_STR := CURR_STR || <span style="color:#ff0000;">','</span> || P1;  
  33.     ELSE  
  34.       CURR_STR := P1;  
  35.     END IF;  
  36.     RETURN ODCICONST.SUCCESS;  
  37.   END;  
  38.   MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN zh_concat_im,  
  39.                                  RETURNVALUE OUT VARCHAR2,  
  40.                                  FLAGS IN NUMBER)  
  41.     RETURN NUMBER   
  42.   IS  
  43.   BEGIN  
  44.     RETURNVALUE := CURR_STR ;  
  45.     RETURN ODCICONST.SUCCESS;  
  46.   END;  
  47.   MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT zh_concat_im,   
  48.                                    SCTX2 IN zh_concat_im)   
  49.   RETURN NUMBER   
  50.   IS  
  51.   BEGIN  
  52.     IF(SCTX2.CURR_STR IS NOT NULL) THEN   
  53.       SELF.CURR_STR := SELF.CURR_STR || <span style="color:#ff0000;">','</span> || SCTX2.CURR_STR ;  
  54.     END IF;  
  55.     RETURN ODCICONST.SUCCESS;  
  56.   END;  
  57. END;  
  58. /  
  59. create or replace FUNCTION zh_concat(P1 VARCHAR2)   
  60. RETURN VARCHAR2 AGGREGATE USING zh_concat_im ;  
posted on 2017-02-28 22:26  知了不了了之  阅读(2247)  评论(0编辑  收藏  举报