加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle 自定义split 函数实例详解

发布时间:2020-12-12 17:05:36 所属栏目:百科 来源:网络整理
导读:Oracle 自定义split 函数 Oracle没有提供split函数,但可以自己建立一个函数实现此功能。比如“abc defg hijkl nmopqr stuvw xyz”,分隔符是空格,但空格个数不定。 源代码: CREATE OR REPLACE FUNCTION fn_var_split ( p_str IN VARCHAR2,p_delimiter IN

Oracle 自定义split 函数

Oracle没有提供split函数,但可以自己建立一个函数实现此功能。比如“abc defg hijkl nmopqr stuvw xyz”,分隔符是空格,但空格个数不定。

源代码:

CREATE OR REPLACE FUNCTION fn_var_split (
p_str IN VARCHAR2,p_delimiter IN VARCHAR2
)
RETURN ty_str_split
IS
j INT := 0;
len INT := 0;
str VARCHAR2 (4000);
str_split ty_str_split := ty_str_split ();
v_str VARCHAR2 (4000) := RTRIM (LTRIM (p_str,p_delimiter),p_delimiter);
BEGIN
len := LENGTH (v_str);

WHILE len > 0
LOOP
j := INSTR (v_str,p_delimiter,1);

IF j = 0
THEN
  str := SUBSTR (v_str,1);
  len := 0;
  str_split.EXTEND;
  str_split (str_split.COUNT) := str;
ELSE
  str := SUBSTR (v_str,1,j - 1);
  v_str := LTRIM (LTRIM (v_str,str),p_delimiter);
  len := LENGTH (v_str);
  str_split.EXTEND;
  str_split (str_split.COUNT) := str;
END IF;

END LOOP;

RETURN str_split;
END fn_var_split;
/

测试:
结果:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读