原始表
COUNTRY    CITY            
-------------------- --------------
中国        台北             
中国        香港             
中国        上海             
日本        东京             
日本        大阪             
 
查询结果

COUNTRY    CITY
-------------------- ---------------
中国        台北 香港 上海
日本        东京 大阪

select country,strcat(city) from t_city group by country;

1.创建类型

create or replace type strcat_type as object
(
cat_string varchar2(4000),
static function ODCIAggregateInitialize(cs_ctx In Out strcat_type)
return number,
member function ODCIAggregateIterate(self In Out strcat_type,
value in varchar2) return number,
member function ODCIAggregateMerge(self In Out strcat_type,
ctx2 In Out strcat_type) return number,
member function ODCIAggregateTerminate(self In Out strcat_type,
returnValue Out varchar2,
flags in number)
return number
);

2. 创建类型体

create or replace type body strcat_type is
static function ODCIAggregateInitialize(cs_ctx IN OUT strcat_type)
return number is
begin
cs_ctx := strcat_type(null);
return ODCIConst.Success;
end; member function ODCIAggregateIterate(self IN OUT strcat_type,
value IN varchar2) return number is
begin
self.cat_string := self.cat_string || ';' || value;
return ODCIConst.Success;
end; member function ODCIAggregateTerminate(self IN Out strcat_type,
returnValue OUT varchar2,
flags IN number) return number is
begin
returnValue := ltrim(rtrim(self.cat_string, ';'), ';');
return ODCIConst.Success;
end; member function ODCIAggregateMerge(self IN OUT strcat_type,
ctx2 IN Out strcat_type) return number is begin
self.cat_string := self.cat_string || ';' || ctx2.cat_string;
return ODCIConst.Success;
end;
end;

3.创建函数

CREATE OR REPLACE FUNCTION strcat(input varchar2) RETURN varchar2
PARALLEL_ENABLE
AGGREGATE USING strcat_type;

最新文章

  1. AVEVA Model Data Exchange Exports Structure Models
  2. .NET Core全新路线图(译)
  3. 冒泡排序,sql分页语句
  4. 好用的排名函数~ROW_NUMBER(),RANK(),DENSE_RANK() 三兄弟
  5. (DFS)codevs1004-四子连棋
  6. winform系统自动登录实现
  7. hadoop2.7【单节点】单机、伪分布、分布式安装指导
  8. 数值类对象:NSNumber,NSValue,NSNull
  9. Implement Stack using Queues ——LeetCode
  10. Android(java)学习笔记261:JNI之编写jni程序适配所有处理器型号
  11. log4cplus配置文件使用
  12. HDOJ 5276 YJC tricks time multimap
  13. dlmalloc 2.8.6 源代码具体解释(6)
  14. hdu2665-Kth number
  15. iOS基础 - UIDatePicker and UIPickerView and UITextField
  16. Linux驱动技术(八) _并发控制技术
  17. MySQL学习笔记(二)—查询
  18. 当mysql遇上PHP
  19. qmake 提示 Failure to open file:****
  20. Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序

热门文章

  1. 使用sqlldr将文件中的数据导入到数据库
  2. RAC 之 RMAN 备份
  3. 将UE添加到右键菜单
  4. python numpy argsort函数用法
  5. YII 配置文件
  6. Selenium2Library系列 keywords 之 _SelectElementKeywords
  7. Oracle 学习用
  8. 10个常见的IE bug和解决方法
  9. 20+富有创意的BuddyPress网站
  10. Ubuntu 下一个可用的音乐播放器