本帖最后由 hnmylm1007 于 2013-09-29 13:52:56 编辑

解决方案 »

  1.   

    我上网找了些 说自己写这个函数的实现方法 找了个 也不行
    create or replace TYPE zh_concat_im 
     AUTHID CURRENT_USER AS OBJECT
     (
       CURR_STR VARCHAR2(32767),
       STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im) RETURN NUMBER,
       MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT zh_concat_im, 
                    P1 IN VARCHAR2) RETURN NUMBER,
       MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN zh_concat_im,
                                      RETURNVALUE OUT VARCHAR2,
                                      FLAGS IN NUMBER)
                          RETURN NUMBER,
       MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT zh_concat_im, 
                         SCTX2 IN  zh_concat_im) RETURN NUMBER
     );
     / create or replace TYPE BODY zh_concat_im
     IS
       STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im)
       RETURN NUMBER 
       IS
       BEGIN
         SCTX := zh_concat_im(NULL) ;
         RETURN ODCICONST.SUCCESS;
       END;
       MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT zh_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 zh_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 zh_concat_im, 
                                        SCTX2 IN zh_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;
     /
    create or replace FUNCTION zh_concat(P1 VARCHAR2) 
     RETURN VARCHAR2 AGGREGATE USING zh_concat_im ;
    /
      

  2.   

    就是我现在刚接手一个项目 前人写的语句 现在报错 select wm_concat(tto.task_content) task_content,
                                           t3ap.record_id
                                      from t_Taskinfo tto,
                                           (select distinct task_no, record_id
                                              from t_3talk_Active_Person) t3ap
                                     where tto.task_no = t3ap.task_no
                                     GROUP BY t3ap.record_id
    不知道应该怎么解决 只知道是wm_concat函数的问题