码迷,mamicode.com
首页 > 数据库 > 详细

oracle split(转自--博客园 linbo.yang)

时间:2017-02-24 18:02:27      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:ora   arch   arc   oop   str   ace   substr   sub   默认   

 

create type tabletype is table of varchar2(3000);

CREATE OR REPLACE FUNCTION split(p_list CLOB, p_sep VARCHAR2 := ,)
  RETURN tabletype
  PIPELINED
/**************************************
  * Name: split
  * Function: 返回字符串被指定字符分割后的表类型。
  * Parameters: p_list: 待分割的字符串。
  p_sep: 分隔符,默认逗号,也可以指定字符或字符串。
  **************************************/
 IS
  l_idx  PLS_INTEGER;
  v_list VARCHAR2(32676) := p_list;
BEGIN
  LOOP
    l_idx := INSTR(v_list, p_sep);
    IF l_idx > 0 THEN
      PIPE ROW(SUBSTR(v_list, 1, l_idx - 1));
      v_list := SUBSTR(v_list, l_idx + LENGTH(p_sep));
    ELSE
      PIPE ROW(v_list);
      EXIT;
    END IF;
  END LOOP;
END;

 

oracle split(转自--博客园 linbo.yang)

标签:ora   arch   arc   oop   str   ace   substr   sub   默认   

原文地址:http://www.cnblogs.com/sigm/p/6439565.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!