ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 把字符串按照特定的分隔符转换为数组

把字符串按照特定的分隔符转换为数组

原创 Linux操作系统 作者:xiaofan8368 时间:2012-12-28 12:17:38 0 删除 编辑
CREATE OR REPLACE TYPE "TY_STR_SPLIT" IS TABLE OF VARCHAR2 (4000);
CREATE OR REPLACE FUNCTION fn_split(p_str       IN VARCHAR2,
                                    p_delimiter IN VARCHAR2)
  RETURN ty_str_split
  --功能:把字符串按照特定的分隔符转换为数组
  /*调用例子
  DECLARE
    V_ARRY_RESULT TY_STR_SPLIT;--定义数组
  BEGIN
    V_ARRY_RESULT := FN_SPLIT(P_STR => '123|456|789', P_DELIMITER => '|');--调用把结果附给数组
  END;*/
 IS
  j         INT := 0;
  i         INT := 1;
  len       INT := 0;
  len1      INT := 0;
  str       VARCHAR2(4000);
  str_split ty_str_split := ty_str_split();
BEGIN
  len  := length(p_str);
  len1 := length(p_delimiter);
  WHILE j < len LOOP
    j := instr(p_str, p_delimiter, i);
 
    IF j = 0 THEN
      j   := len;
      str := substr(p_str, i);
      str_split.extend;
      str_split(str_split.count) := str;
   
      IF i >= len THEN
        EXIT;
      END IF;
    ELSE
      str := substr(p_str, i, j - i);
      i   := j + len1;
      str_split.extend;
      str_split(str_split.count) := str;
    END IF;
  END LOOP;
  RETURN str_split;
END fn_split;
 
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11745285/viewspace-751802/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: oracle监控DDL语句
下一篇: 递归打平的方法
请登录后发表评论 登录
全部评论

注册时间:2012-12-10

  • 博文量
    13
  • 访问量
    26887