oracle 数据库split 函数,将数据切割返回成表格形式

  • Post author:
  • Post category:其他




1. oracle 数据库 split(a,b) 函数

具体代码参考如下:

select * from table(split('2#3#4#5#',‘#’))


其中p_list :为传入参数

p_sep:为需要切割的标记,如 ‘,’ , ‘ # ’ ,‘ / ’等等

create or replace function split(p_list in varchar2, p_sep in varchar2)  return type_split pipelined
IS
 j int := 0;
 i int := 1;
 len int := 0;
 len1 int := 0;
 v_list varchar2(5000);
BEGIN
 len := length(p_list);
 len1 := length(p_sep);
 while j < len 
  loop 
   j :=INSTR(p_list,p_sep,i);
    if j = 0 then
     j := len;
     v_list := substr(p_list,i) ;
     pipe row(v_list);
      if i > len then
       exit;
       end if;
     else
      v_list := substr(p_list,i,j - i);
      i := j + len1;
      pipe row(v_list);
      end if;
      end loop;
      return;
   end split;     

具体结果参考下图:

在这里插入图片描述



版权声明:本文为zhangyuliang6430原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。