Oracle11gr2分析函数新特性(二)

11gr2中,Oracle终于实现了这个分析函数

select name,
  listagg(name, ',') within group (order by id) over(partition by type) s_name
   from t
  where type in ('DIRECTORY', 'JAVA SOURCE', 'SCHEDULE');


NAME                      S_NAME
------------------------- -----------------------------------------------------------
ORACLE_OCM_CONFIG_DIR     ORACLE_OCM_CONFIG_DIR,DATA_PUMP_DIR,XMLDIR
DATA_PUMP_DIR             ORACLE_OCM_CONFIG_DIR,DATA_PUMP_DIR,XMLDIR
XMLDIR                    ORACLE_OCM_CONFIG_DIR,DATA_PUMP_DIR,XMLDIR
dbFWTrace                 dbFWTrace,schedFileWatcherJava


已选择8行。
上面是这个函数的3种用法,分别是不带GROUP BY的聚集函数,包含GROUP BY的聚集函数,和分析函数。
和自定义聚集函数相比,这个新增分析函数的最大功能是实现了排序的功能。
当然这个函数返回的是VARCHAR2类型,也就是仍然没有解决返回字符串超长的问题:

 

你可能感兴趣的:(java,oracle)