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


  本文标签:Oracle合并函数

  以下的文章主要是对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合并函数的介绍,望你能有所收获  。