Oracle合并函数的两种类型介绍

数据库 Oracle
下面的文章主要描述的是Oracle合并函数的两种类型,即Oracle9i和Oracle10g,以及着两种函数的实际应用的介绍。以下就是主要内容介绍。

以下的文章主要是对Oracle合并函数的两种类型的介绍,即,Oracle9i与Oracle10g相关实际应用代码的介绍,以及Oracle9i的具体使用方案的描述,下面就是文章的具体内容的介绍,望你会有所收获。

Oracle合并函数之9i下:

 

  1. create type strcat_type as object (  
  2. cat_string varchar2(4000),  
  3. static function ODCIAggregateInitialize(cs_ctx In Out strcat_type) return number,  
  4. member function ODCIAggregateIterate(self In Out strcat_type,value in varchar2) return number,  
  5. member function ODCIAggregateMerge(self In Out strcat_type,ctx2 In Out strcat_type) return number,  
  6. member function ODCIAggregateTerminate(self In Out strcat_type,returnValue Out varchar2,flags in number) return number  
  7. )  
  8. /  
  9. create type body strcat_type is  
  10. static function ODCIAggregateInitialize(cs_ctx IN OUT strcat_type) return number  
  11. is  
  12. begin  
  13. cs_ctx :strcat_type( null );  
  14. return ODCIConst.Success;  
  15. end;  
  16. member function ODCIAggregateIterate(self IN OUT strcat_type,  
  17. value IN varchar2 )  
  18. return number  
  19. is  
  20. begin  
  21. self.cat_string :self.cat_string || ','|| value;  
  22. return ODCIConst.Success;  
  23. end;  
  24. member function ODCIAggregateTerminate(self IN Out strcat_type,  
  25. returnValue OUT varchar2,  
  26. flags IN number)  
  27. return number  
  28. is  
  29. begin  
  30. returnValue :ltrim(rtrim(self.cat_string,','),',');  
  31. return ODCIConst.Success;  
  32. end;  
  33. member function ODCIAggregateMerge(self IN OUT strcat_type,  
  34. ctx2 IN Out strcat_type)  
  35. return number  
  36. is  
  37. begin  
  38. self.cat_string :self.cat_string || ',' || ctx2.cat_string;  
  39. return ODCIConst.Success;  
  40. end;  
  41. end;  
  42. /  
  43. CREATE or replace  
  44. FUNCTION strcat(input varchar2 )  
  45. RETURN varchar2  
  46. PARALLEL_ENABLE AGGREGATE USING strcat_type;  
  47. /  

 

使用方法:

 

  1. select t2.kdm_mdid_pk,t2.kdm_title,  
  2. strcat(t3.subject_mc_content) message  
  3. from t_knodoc_rel_subjects t1,  
  4. T_KNO_DOC_METADATA t2,  
  5. T_SUBJECT_MULTILINGUAL_CONTENT t3  
  6. where t1.krs_kdm_mdid_fk=t2.kdm_mdid_pk  
  7. and t1.krs_subid_fk=t3.subject_mc_id_pk  
  8. group by t2.kdm_mdid_pk,t2.kdm_title  

 

Oracle合并函数之10g下:

 

  1. select t2.kdm_mdid_pk,t2.kdm_title,WMSYS.WM_CONCAT(t3.subject_mc_content) message  
  2. from t_knodoc_rel_subjects t1,  
  3. T_KNO_DOC_METADATA t2,  
  4. T_SUBJECT_MULTILINGUAL_CONTENT t3  
  5. where t1.krs_kdm_mdid_fk=t2.kdm_mdid_pk  
  6. and t1.krs_subid_fk=t3.subject_mc_id_pk  
  7. group by t2.kdm_mdid_pk,t2.kdm_title   

以上的相关内容就是对Oracle合并函数的介绍,望你能有所收获。

【编辑推荐】

  1. Oracle表空间的设置问题的描述
  2. Oracle数据字典的恢复场景
  3. Oracle case的2中常用表达式
  4. 确定Oracle数据库中的表中重复的相关记录
  5. Oracle虚拟数据控制的方法介绍
责任编辑:佚名 来源: 互联网
相关推荐

2009-11-23 18:16:03

PHP时间

2010-03-18 14:02:37

Python空对象整理

2010-04-23 14:55:31

Oracle字符

2018-03-23 10:51:21

云测试云计算性能测试

2010-09-29 09:59:22

J2ME配置

2010-10-25 10:31:51

Oracle函数

2010-01-18 10:48:05

JBoss类隔离

2010-04-02 13:15:01

Oracle跟踪

2010-02-01 10:22:51

C++数据指针

2010-04-26 17:15:13

Oracle优化器

2010-04-13 09:50:44

Oracle跟踪

2011-08-30 11:22:17

OracleDatabase Li

2010-03-24 12:30:24

Python嵌入

2010-10-25 17:00:40

Oracle deco

2010-11-04 11:45:10

Oracle DECO

2011-03-23 11:22:14

oracle dbli

2010-10-27 14:52:04

ORACLE数据类型

2010-07-15 14:38:55

Perl eval函数

2010-06-30 13:07:17

SQL Server函

2012-11-29 10:45:31

点赞
收藏

51CTO技术栈公众号