我是靠谱客的博主 动人万宝路,最近开发中收集的这篇文章主要介绍wm_concat 行转列数据量大的解决方案,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

wmsys.wm_concat  这个函数存在缺陷,数据量大的时候,容易报ora-22813

    没办法只能通过重新定义一个行转列函数,copy了一下 http://www.savedba.com/?p=955  这个人写的函数

有点问题,自己又改了下。

drop type t_dj_concat;
drop function dj_concat;


create or replace type t_dj_concat  as object
(
  curr_str clob,
  static function odciaggregateinitialize(sctx in out t_dj_concat)
    return number,
  member function odciaggregateiterate(self in out t_dj_concat,
                                       p1   in varchar2) return number,
  member function odciaggregateterminate(self        in t_dj_concat,
                                         returnvalue out clob,
                                         flags       in number)
    return number,
  member function odciaggregatemerge(self  in out t_dj_concat,
                                     sctx2 in t_dj_concat) return number
);
/




create or replace type body t_dj_concat
is
  static function odciaggregateinitialize(sctx in out t_dj_concat)
  return number
  is
  begin
  sctx := t_dj_concat(null) ;
  return odciconst.success;
  end;
  member function odciaggregateiterate(self in out t_dj_concat,


  p1 in varchar2)
  return number
  is
  begin
  if(curr_str is not null) then
  curr_str := curr_str || ',' || p1;
  else
  curr_str := p1;
  end if;
  return odciconst.success;
  end;
  member function odciaggregateterminate(self in t_dj_concat,
  returnvalue out clob,
  flags in number)
  return number
  is
  begin
  returnvalue := curr_str ;
  return odciconst.success;
  end;
  member function odciaggregatemerge(self in out t_dj_concat,
  sctx2 in t_dj_concat)
  return number
  is
  begin
  if(sctx2.curr_str is not null) then
  self.curr_str := self.curr_str || ',' || sctx2.curr_str ;
  end if;
  return odciconst.success;
  end;
end;
/






create or replace function dj_concat(p1 varchar2)
return clob aggregate using t_dj_concat ;
/



最后

以上就是动人万宝路为你收集整理的wm_concat 行转列数据量大的解决方案的全部内容,希望文章能够帮你解决wm_concat 行转列数据量大的解决方案所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部