wm_concat 根據它寫一個自定義符號的分割函數

create or replace type MyConcatImpl as object  
(  
  str VARCHAR2(32767), -- second highest value seen so far  
  static function ODCIAggregateInitialize(sctx IN OUT MyConcatImpl)   
    return number,  
  member function ODCIAggregateIterate(self IN OUT MyConcatImpl,   
    value IN VARCHAR2) return number,  
  member function ODCIAggregateTerminate(self IN MyConcatImpl,   
    returnValue OUT VARCHAR2, flags IN number) return number,  
  member function ODCIAggregateMerge(self IN OUT MyConcatImpl,   
    ctx2 IN MyConcatImpl) return number  
);  
/  
  
create or replace type body MyConcatImpl is   
static function ODCIAggregateInitialize(sctx IN OUT MyConcatImpl)   
return number is   
begin  
  sctx := MyConcatImpl(NULL);  
  return ODCIConst.Success;  
end;  
  
member function ODCIAggregateIterate(self IN OUT MyConcatImpl, value IN VARCHAR2) return number is  
begin  
  if self.str is not null then  
    self.str := self.str || '、' || value;  
  else  
    self.str :=
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章