首页 > 数据库技术 > 详细

Oracle反转倒置函数

时间:2015-03-05 19:28:37      阅读:291      评论:0      收藏:0      [点我收藏+]

Oracle提供了一个反转倒置函数reverse,但此函数不能分组倒置,本文提供了一个即可分组倒置的函数,如下所示:

CREATE OR REPLACE FUNCTION REVERSE_F(p_str VARCHAR2, p_delimiter VARCHAR2:='')
  RETURN VARCHAR2 IS
  v_return VARCHAR2(4000);
  vp_str   VARCHAR2(4000) := p_str;
  v_idx    number;
  vp_len   number := length(p_delimiter);
BEGIN
  if (p_delimiter is null) then
    select reverse(p_str) into v_return from dual;
  else
    loop
      v_idx := instr(vp_str, p_delimiter);
      if (v_idx = 0) then
        v_return := vp_str || v_return;
        exit;
      elsif (v_idx = 1) then
        v_return := substr(vp_str, 1, vp_len) || v_return;
        vp_str   := substr(vp_str, vp_len + 1);
      else
        v_return := substr(vp_str, 1, v_idx - 1) || v_return;
        vp_str   := substr(vp_str, v_idx);
      end if;
    end loop;
  end if;
  RETURN v_return;
END REVERSE_F;
技术分享

Oracle反转倒置函数

原文:http://blog.csdn.net/maci_hotesion/article/details/44085935

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!