首页>>数据库>>oracle 自定义字符串分割为数组方法
oracle 自定义字符串分割为数组方法
来源: http://dusiguxia.blog.163.com/ 时间: 2015-02-09 20:31:21

--定义数组类型

CREATE OR REPLACE TYPE splittable AS TABLE OF varchar2(100) ;

/

CREATE OR REPLACE FUNCTION split_string  

   (src VARCHAR2, delimiter varchar2)  

   --返回为上述定义的数组类型

  RETURN splittable IS  

  psrc VARCHAR2(500);  

  --定义一个数据变量

  a splittable := splittable();  

  i NUMBER := 1;  

  j NUMBER := 1;  

BEGIN  

  --去除头和尾的delimiter

  psrc := RTrim(LTrim(src, delimiter), delimiter);  

  LOOP  

    --从左侧开始确定delimiter在psrc中从j处开始第1此出现的位置

    i := InStr(psrc, delimiter, j);   

    IF i>0 THEN  

      --扩展表结构

      a.extend;  

      a(a.Count) := Trim(SubStr(psrc, j, i-j));  

      j := i+1;  

    END IF;  

    EXIT WHEN i=0;  

  END LOOP;  

  --把最后的字符放到数组中

  IF j < Length(psrc) THEN  

    a.extend;  

    a(a.Count) := Trim(SubStr(psrc, j, Length(psrc)+1-j));  

  END IF;  

  RETURN a;  

END;  

/

--测试

select * from table (SPLIT_STRING('1,2,3,4',','));

本页地址:http://www.easytd.com/shujuku/d_15020920244.html

上一篇:MySQL常用的备份和恢复命令 下一篇:Oracle查看并修改最大连接数