使用的代码
| 代码如下 | 复制代码 | 
| 
 -- sample data collect函数(Oracle10g) sys_connect_by_path user-defined-function  | 
	  |
辅助用的my_tk包代码片段
| 代码如下 | 复制代码 | 
| 
 create or replace type my_tk_str_tab_type is table of varchar2(100);   ---------------------------------------------------------------------  | 
	  |
自定义聚合函数
------------------------------------------------------------------
| 代码如下 | 复制代码 | 
| 
 -- user-defined-function   STATIC FUNCTION ODCIAggregateInitialize(sctx  IN OUT  t_string_agg)   MEMBER FUNCTION ODCIAggregateIterate(self   IN OUT  t_string_agg,   MEMBER FUNCTION ODCIAggregateTerminate(self         IN   t_string_agg,   MEMBER FUNCTION ODCIAggregateMerge(self  IN OUT  t_string_agg,   MEMBER FUNCTION ODCIAggregateIterate(self   IN OUT  t_string_agg,   MEMBER FUNCTION ODCIAggregateTerminate(self         IN   t_string_agg,   MEMBER FUNCTION ODCIAggregateMerge(self  IN OUT  t_string_agg,  | 
	  |
最后给个参考表
在数据量10000的表上进行三种方法的测试,运行时间单位秒
| 数据量PCT | Collect | SYS_Connect | UDF | 
| 1% | 0.017 | 0.018 | 0.017 | 
| 10% | 0.026 | 0.050 | 0.029 | 
| 50% | 0.057 | 2.45 | 0.065 | 
| 100% | 0.090 | 5.00 | 1.06 |