使用自定义聚集函数来实现分组合并字符串

 

oracle自定义聚集函数接口简介

(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客a. static function ODCIAggregateInitialize(sctx IN OUT string_agg_type ) 
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number


自定义聚集函数初始化设置,从这儿开始一个聚集函数


(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客b. member function ODCIAggregateIterate(self IN OUT string_agg_type ,value IN varchar2)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客

自定义聚集函数,最主要的步骤,这个函数定义我们的聚集函数具体做什么操作,后面的例子,是取最大值,最小值,平均值,还是做连接操作.self 为当前聚集函数的指针,用来与前面的计算结果进行关联


(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客c. member function ODCIAggregateMerge (self IN string_agg_type,returnValue OUT varchar2,flags IN number) 
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客

用来合并两个聚集函数的两个不同的指针对应的结果,用户合并不同结果结的数据,特别是处理并行(parallel)查询聚集函数的时候.


(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客d. member function OCDIAggregateTerminate(self IN string_agg_type,returnValue OUT varchar2,flags IN number)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客

终止聚集函数的处理,返回聚集函数处理的结果


1、简单的合并(合并不需要排序)
原文:http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:229614022562

 


(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客create or replace type string_agg_type as object
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客(
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客total varchar2(4000),
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客static function
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ODCIAggregateInitialize(sctx IN OUT string_agg_type )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ODCIAggregateIterate(self IN OUT string_agg_type ,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客value IN varchar2 )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ODCIAggregateTerminate(self IN string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客returnValue OUT varchar2,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客flags IN number)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ODCIAggregateMerge(self IN OUT string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ctx2 IN string_agg_type)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客);
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客/
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客Type created.
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客create or replace type body string_agg_type
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客static function ODCIAggregateInitialize(sctx IN OUT string_agg_type)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客sctx := string_agg_type( null );
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function ODCIAggregateIterate(self IN OUT string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客value IN varchar2 )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客self.total := self.total || ',' || value;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function ODCIAggregateTerminate(self IN string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客returnValue OUT varchar2,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客flags IN number)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客returnValue := ltrim(self.total,',');
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function ODCIAggregateMerge(self IN OUT string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ctx2 IN string_agg_type)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客self.total := self.total || ctx2.total;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客/
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客Type body created.
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客CREATE or replace
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客FUNCTION stragg(input varchar2 )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客RETURN varchar2
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客PARALLEL_ENABLE AGGREGATE USING string_agg_type;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客/
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客scott@ORA9I.WORLD> select deptno, stragg(ename)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客2 from emp
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客3 group by deptno
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客4 /
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客DEPTNO
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客----------
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客STRAGG(ENAME)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客---------------------------------------------------------------------------------
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客--------------------------------------------------
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客10
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客CLARK,KING,MILLER
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客20
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客SMITH,FORD,ADAMS,SCOTT,JONES
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客30
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ALLEN,BLAKE,MARTIN,TURNER,JAMES,WARD
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客


2、简单的合并(合并的字符串要排序)
原文:http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:15637744429336#16551777586484
除了用以下方法,还可以用上面1中的聚集函数以分析函数的方式使用,在over子句中排序来实现,可以参考
itpub上的文章:
http://www.itpub.net/338337.html

 


(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客create or replace type body string_agg_type
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客static function ODCIAggregateInitialize(sctx IN OUT string_agg_type)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客sctx := string_agg_type( vcArray() );
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function ODCIAggregateIterate(self IN OUT string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客value IN varchar2 )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客data.extend;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客data(data.count) := value;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function ODCIAggregateTerminate(self IN string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客returnValue OUT varchar2,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客flags IN number)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客l_data varchar2(4000);
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客for x in ( select column_value from TABLE(data) order by 1 )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客loop
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客l_data := l_data || ',' || x.column_value;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end loop;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客returnValue := ltrim(l_data,',');
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function ODCIAggregateMerge(self IN OUT string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ctx2 IN string_agg_type)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin -- not really tested ;)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客for i in 1 .. ctx2.data.count
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客loop
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客data.extend;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客data(data.count) := ctx2.data(i);
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end loop;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客/
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客CREATE or replace
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客FUNCTION stragg(input varchar2 )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客RETURN varchar2
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客PARALLEL_ENABLE AGGREGATE USING string_agg_type;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客/
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ops$tkyte@ORA9IR2> column ename format a40ops$tkyte@ORA9IR2> select deptno, stragg(ename) ename
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客2 from emp
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客3 group by deptno
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客4 /
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客DEPTNO ENAME
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客---------- ----------------------------------------
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客10 CLARK,KING,MILLER
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客20 ADAMS,FORD,JONES,SCOTT,SMITH
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客30 ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD

oracle自定义聚集函数接口简介


(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客a. static function ODCIAggregateInitialize(sctx IN OUT string_agg_type ) 
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number


自定义聚集函数初始化设置,从这儿开始一个聚集函数


(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客b. member function ODCIAggregateIterate(self IN OUT string_agg_type ,value IN varchar2)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客

自定义聚集函数,最主要的步骤,这个函数定义我们的聚集函数具体做什么操作,后面的例子,是取最大值,最小值,平均值,还是做连接操作.self 为当前聚集函数的指针,用来与前面的计算结果进行关联


(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客c. member function ODCIAggregateMerge (self IN string_agg_type,returnValue OUT varchar2,flags IN number) 
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客

用来合并两个聚集函数的两个不同的指针对应的结果,用户合并不同结果结的数据,特别是处理并行(parallel)查询聚集函数的时候.


(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客d. member function OCDIAggregateTerminate(self IN string_agg_type,returnValue OUT varchar2,flags IN number)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客

终止聚集函数的处理,返回聚集函数处理的结果


1、简单的合并(合并不需要排序)
原文:http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:229614022562

 


(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客create or replace type string_agg_type as object
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客(
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客total varchar2(4000),
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客static function
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ODCIAggregateInitialize(sctx IN OUT string_agg_type )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ODCIAggregateIterate(self IN OUT string_agg_type ,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客value IN varchar2 )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ODCIAggregateTerminate(self IN string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客returnValue OUT varchar2,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客flags IN number)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ODCIAggregateMerge(self IN OUT string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ctx2 IN string_agg_type)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客);
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客/
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客Type created.
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客create or replace type body string_agg_type
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客static function ODCIAggregateInitialize(sctx IN OUT string_agg_type)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客sctx := string_agg_type( null );
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function ODCIAggregateIterate(self IN OUT string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客value IN varchar2 )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客self.total := self.total || ',' || value;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function ODCIAggregateTerminate(self IN string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客returnValue OUT varchar2,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客flags IN number)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客returnValue := ltrim(self.total,',');
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function ODCIAggregateMerge(self IN OUT string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ctx2 IN string_agg_type)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客self.total := self.total || ctx2.total;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客/
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客Type body created.
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客CREATE or replace
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客FUNCTION stragg(input varchar2 )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客RETURN varchar2
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客PARALLEL_ENABLE AGGREGATE USING string_agg_type;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客/
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客scott@ORA9I.WORLD> select deptno, stragg(ename)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客2 from emp
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客3 group by deptno
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客4 /
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客DEPTNO
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客----------
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客STRAGG(ENAME)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客---------------------------------------------------------------------------------
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客--------------------------------------------------
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客10
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客CLARK,KING,MILLER
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客20
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客SMITH,FORD,ADAMS,SCOTT,JONES
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客30
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ALLEN,BLAKE,MARTIN,TURNER,JAMES,WARD
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客


2、简单的合并(合并的字符串要排序)
原文:http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:15637744429336#16551777586484
除了用以下方法,还可以用上面1中的聚集函数以分析函数的方式使用,在over子句中排序来实现,可以参考
itpub上的文章:http://www.itpub.net/338337.html

 


(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客create or replace type body string_agg_type
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客static function ODCIAggregateInitialize(sctx IN OUT string_agg_type)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客sctx := string_agg_type( vcArray() );
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function ODCIAggregateIterate(self IN OUT string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客value IN varchar2 )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客data.extend;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客data(data.count) := value;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function ODCIAggregateTerminate(self IN string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客returnValue OUT varchar2,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客flags IN number)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客l_data varchar2(4000);
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客for x in ( select column_value from TABLE(data) order by 1 )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客loop
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客l_data := l_data || ',' || x.column_value;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end loop;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客returnValue := ltrim(l_data,',');
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客member function ODCIAggregateMerge(self IN OUT string_agg_type,
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ctx2 IN string_agg_type)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return number
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客is
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客begin -- not really tested ;)
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客for i in 1 .. ctx2.data.count
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客loop
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客data.extend;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客data(data.count) := ctx2.data(i);
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end loop;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客return ODCIConst.Success;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客end;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客/
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客CREATE or replace
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客FUNCTION stragg(input varchar2 )
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客RETURN varchar2
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客PARALLEL_ENABLE AGGREGATE USING string_agg_type;
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客/
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客ops$tkyte@ORA9IR2> column ename format a40ops$tkyte@ORA9IR2> select deptno, stragg(ename) ename
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客2 from emp
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客3 group by deptno
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客4 /
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客DEPTNO ENAME
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客---------- ----------------------------------------
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客10 CLARK,KING,MILLER
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客20 ADAMS,FORD,JONES,SCOTT,SMITH
(转载)使用自定义聚集函数来实现分组合并字符串 - abao8_111 - abao8_111的博客30 ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD
from http://blog.163.com/abao8_111/blog/static/3369055420106306824527/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值