程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle合並函數的兩種類型介紹

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   
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved