PLSQL 实现split:
FUNCTION Get_Field_Value
    (
        in_str  IN VARCHAR2,
        findstr IN VARCHAR2,
        field   IN INTEGER
    ) RETURN VARCHAR2 AS
        tmp_msg VARCHAR2(20);
        -- 取字段 值 ,field start from 0 
        startidx INTEGER;
        endidx   INTEGER;
    
    BEGIN
        startidx := 1;
        endidx   := 1;
    
        FOR i IN 1 .. field
        LOOP
            --INSTR(in_string,'|',tmp_pos);
            --substr(in_string,tmp_pos,tmp_pos1-tmp_pos); 
            IF i > 1 THEN
                startidx := INSTR(in_str, findstr, startidx);
                IF startidx = 0 THEN
                    RETURN NULL;
                END IF;
                startidx := startidx + length(findstr);
            END IF;
        END LOOP;
    
        endidx := INSTR(in_str, findstr, startidx);
        IF endidx = 0 THEN
            endidx := length(in_str) + 1;
        END IF;
    
        RETURN substr(in_str, startidx, endidx - startidx);
    
    EXCEPTION
        WHEN OTHERS THEN
            RETURN NULL;
    END;

例二

TYPE ARRAY IS TABLE OF VARCHAR2(255);
FUNCTION SPLIT(P_STR IN VARCHAR2, P_DELIMITER IN VARCHAR2) RETURN ARRAY IS
    J         INT := 0;
    I         INT := 1;
    LEN       INT := 0;
    LEN1      INT := 0;
    STR       VARCHAR2(4000);
    STR_SPLIT ARRAY := ARRAY();
  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 SPLIT;

调用:

STR_SPLIT := SPLIT('A,B,C,D,E,F', ',');
FOR I IN 1 .. STR_SPLIT.COUNT LOOP
      DBMS_OUTPUT.PUT_LINE(I);
END LOOP;

PLSQL 实现split相关推荐

  1. PLSQL Split分割字符串

    系统自带的split,使用起来方便,但是如果字符串太长,可能会出现异常,这里,我自己写了一个也是该名字,放在自己的包中,引用的时候带包名就好了. --系统自带的函数 /*CURSOR cur_temp ...

  2. oracle10g ty_str_split,Oracle split(分隔字符串函数)

    一 Oracle版本: 10g PLSQL: 8.0 二 具体代码如下: 1 类型 CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 ( ...

  3. plsql配置多数据源,想换哪个换哪个

    现在的公司内部普遍使用plsql对数据库进行管理.而数据库非常多,从测试到线上环境数据库那么多,我们通常使用同一配置管理,便于切换.那么配置数据库连接就成为了很重要的一步. 1.安装plsql (这里 ...

  4. 逗号分隔的字符串转换为Python中的列表 split

    将逗号分隔的字符串转换为Python中的列表 给定一个字符串: 它是由逗号分隔的几个值的序列: mStr = '192.168.1.1,192.168.1.2,192.168.1.3' 如何将字符串转 ...

  5. 解决plsql中文显示问号(???)问题

    最近新买的电脑,配置好数据库连接后,plsql查看数据与插入中文数据都显示问号(???),同事的都正常显示,查看了很多资料,有的说是数据库字符集的原因让修改数据库的字符集,但是我的数据库都是远程连接正 ...

  6. python join split

    本文记录python,join和split函数的用法. 参考 http://blog.csdn.net/doiido/article/details/43538833 http://blog.csdn ...

  7. 【转】oracle PLSQL基础学习

    [转]oracle PLSQL基础学习 --oracle 练习: /**************************************************PL/SQL编程基础****** ...

  8. C# split 几种使用方法

    第一种方法:            string s = "abcdeabcdeabcde";             string[] sArray = s.Split('c') ...

  9. str.split() 与 str.split(‘ ‘)区别

    a='1 2 3 4' b=a.split() #默认按空格分割 c=a.split(' ') print(b) print(c)##输出 ['1', '2', '3', '4'] ['1', '2' ...

最新文章

  1. 2021-2027年中国医疗美容市场研究及前瞻分析报告
  2. 深入浅析zookeeper的一致性模型及其实现
  3. 删除字符串中多余的空白字符和空行(C语言实现)
  4. 业界率先支持 MCP-OVER-XDS 协议,Nacos 2.0.1 + 1.4.2 Release 正式发布
  5. 【Tomcat Eclipse】8080端口被占用问题记录
  6. CNN结构:用于检测的CNN结构进化-一站式方法
  7. python是如何实现进程池和线程池的_进程、线程、线程池和协程如何理解?
  8. FFmpeg options
  9. 前端学习(1542):cdn简介
  10. mysql查询结果每条记录两个字段求和_MYSQL实现将两个结果集合并,并且按照时间字段分组,其他字段的值求和...
  11. iphone版 天行skyline_SkyLine
  12. pthread 线程冲突一个简单例子
  13. php 之将图片转换base64编码(为百度ocr作准备,解决 image format error)
  14. windows下的Zcash钱包(ZEC钱包)-zcash4win 1.0.11
  15. EdrawMax 11 for mac(亿图图示)中文版
  16. 电脑在指定时间关机的指令代码
  17. cinahl数据库怎么进入_CINAHL数据库的检索系统及相关检索方法
  18. YNWA,同样是我们普通人的鞭策
  19. 实施不良资产证券化 信用评级不能少
  20. 基于pytorch下用LSTM做股票预测——超详细

热门文章

  1. Apache Struts 和 Spring 开源漏洞状况的对比
  2. 谷歌修复另一枚已遭利用的 Chrome 释放后使用0day,细节未公开
  3. Drupal 紧急修复已遭利用的严重 0day
  4. Centos下pure-ftpd安装配置详解
  5. Kibana安装-源码
  6. Android 6.0 Permission权限与安全机制
  7. POJ 1797 Heavy Transportation 最短路变形(dijkstra算法)
  8. C3P0连接池配置方式
  9. WinForm多线程+委托防止界面假死
  10. 细说嵌入式Linux文件系统的制作方法