hotesion的专栏

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) thenselect reverse(p_str) into v_return from dual; elseloopv_idx := instr(vp_str, p_delimiter);if (v_idx = 0) thenv_return := vp_str || v_return;exit;elsif (v_idx = 1) thenv_return := substr(vp_str, 1, vp_len) || v_return;vp_str := substr(vp_str, vp_len + 1);elsev_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;

不做任何解释。没有人明白,

hotesion的专栏

相关文章:

你感兴趣的文章:

标签云: