博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用自定义聚集函数来实现分组合并字符串
阅读量:3567 次
发布时间:2019-05-20

本文共 7802 字,大约阅读时间需要 26 分钟。

 
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、简单的合并(合并不需要排序)
原文:

 


(转载)使用自定义聚集函数来实现分组合并字符串 - 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、简单的合并(合并的字符串要排序)
原文:

 


(转载)使用自定义聚集函数来实现分组合并字符串 - 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、简单的合并(合并不需要排序)
原文:

 


(转载)使用自定义聚集函数来实现分组合并字符串 - 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、简单的合并(合并的字符串要排序)
原文:
除了用以下方法,还可以用上面1中的聚集函数以分析函数的方式使用,在over子句中排序来实现,可以参考
itpub上的文章:

 


(转载)使用自定义聚集函数来实现分组合并字符串 - 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/
你可能感兴趣的文章
Leetcode 41. 缺失的第一个正数
查看>>
Leetcode 78. 子集 dfs
查看>>
数据结构与算法题目集(中文) 6-1 单链表逆转 (20 分)
查看>>
Leetcode 442. 数组中重复的数据
查看>>
PAT (Advanced Level) Practice 1147 Heaps (30 分)堆
查看>>
PAT (Advanced Level) Practice 1146 Topological Order (25 分) 拓扑排序
查看>>
PAT (Advanced Level) Practice 1149 Dangerous Goods Packaging (25 分)set
查看>>
PAT (Advanced Level) Practice 1001 A+B Format (20 分)
查看>>
PAT (Advanced Level) Practice 1021 Deepest Root (25 分)
查看>>
数据结构 顺序表 操作集
查看>>
PAT (Advanced Level) Practice 1040 Longest Symmetric String (25 分) 最长回文字符串 dp
查看>>
PAT (Advanced Level) Practice 1142 Maximal Clique (25 分) 暴力
查看>>
HDU 数塔 dp
查看>>
AOJ 0-1 Knapsack Problem 01背包 dp
查看>>
Aizu - DPL_1_D Longest Increasing Subsequence dp+二分查找 最长递增子序列
查看>>
nyoj 10-skiing dp
查看>>
nyoj 49-开心的小明 dp
查看>>
nyoj 15-括号匹配(二) 模拟
查看>>
nyoj 104-最大和
查看>>
HDU 2045 不容易系列之(3)—— LELE的RPG难题
查看>>