Oracle 超长字符串分割劈分,具体能有多长没测过,反正很大....

下面,,,,直奔主题了:

CREATE OR REPLACE FUNCTION splitstr(p_string IN clob, p_delimiter IN VARCHAR2:=',')
RETURN str_split PIPELINED
/*劈分字符串,返回结果集
使用 select COLUMN_VALUE from table(splitstr('34324,65,gfds,yt,,')); --默认分隔符
使用 select COLUMN_VALUE from table(splitstr('34324,65,gfds,yt,,',','));
使用遍历 for tbl in (select * from table(splitstr('123,567,9'))) loop ... end loop;
*/
AS
v_length NUMBER := LENGTH(p_string);
v_start NUMBER := 1;
v_index NUMBER;
v_chars varchar(4000);--限制每行长度,方便使用
BEGIN
WHILE(v_start <= v_length) LOOP
v_index := INSTR(p_string, p_delimiter, v_start);
IF v_index = 0 THEN
v_chars:=substr(SUBSTR(p_string, v_start),1,4000);
PIPE ROW(v_chars);
v_start := v_length + 1;
ELSE
v_chars:=substr(SUBSTR(p_string, v_start, v_index - v_start),1,4000);
PIPE ROW(v_chars);
v_start := v_index + 1;
END IF;
END LOOP;
RETURN;
END splitstr;

  返回的table 列有限制长度的,为varchar2长度限制, 方便其他操作

还有这个要定义的: CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2(32676);

在存储过程调用时,如果是参数/变量传入,不能是long类型的,否则报错,因为long类型.....就不多说了

转载记得原文链接:http://cnblogs.cn/lzpong

Oracle 超长字符串分割劈分的更多相关文章

  1. lua劈分字符串方法及实例

    由于工作项目需要,最近需要用lua来写一些脚本.然而lua并不想java那样有很多的好用的api,很多方法得我们自己来编写和封装,就比如今天碰到的劈分字符串,查找资料后只能自己写了一个. 代码如下 - ...

  2. 工作中用到的oracle字符串分割整理

    oracle部分: 定义类型(用于字符串分割): create or replace TYPE "STR_SPLIT" IS TABLE OF VARCHAR2 (4000); 字 ...

  3. Oracle把逗号分割的字符串转换为可放入in的条件语句的字符数列

    Oracle把逗号分割的字符串转换为可放入in的条件语句的字符数列   前台传来的字符串:'589,321' SELECT*FROM TAB_A T1 WHERE  T1.CODE  IN ( SEL ...

  4. Oracle拆分字符串,字符串分割的函数。

    第一种:oracle字符串分割和提取 分割 create or replace function Get_StrArrayLength ( av_str varchar2, --要分割的字符串 av_ ...

  5. 根据 oracle 标准计算超长字符串的长度

    Oracle 数据库使用 sql语句 :    select lengthb('输入字符串') from dual  ,  来计算 字符串 所占的字节长度(比如,一个汉字3个字节),但是用这个leng ...

  6. oracle根据分隔符将字符串分割成数组函数

    --创建表类型 create or replace type mytype as table of number;--如果定义成varchar--CREATE OR REPLACE type myty ...

  7. Oracle字符串分割函数

    今天在创建视图的时候,碰到一个问题,问题如下: 将字符格式为“XXX,YYY”分割出来,并且分割后作为两个字段放入视图中. 考虑使用字符分割函数,但是查找资料Oracle没有字符分割的函数(我对Ora ...

  8. oracle截取字符串,定索引

    转载:https://www.cnblogs.com/qmfsun/p/4493918.html 使用Oracle中Instr()和substr()函数: 1 2 3 4 5 6 7 8 9 10 1 ...

  9. PCB MS SQL表值函数与CLR 表值函数 (例:字符串分割转表)

    将字符串分割为表表经常用到,这里 SQL表值函数与CLR  表值函数,两种实现方法例出来如下: SELECT * FROM FP_EMSDB_PUB.dbo.SqlSplit('/','1oz/1.5 ...

随机推荐

  1. spring spring data jpa save操作事务

    整合spring spring data jpa的时候,在save方法上加了@Transactional注解.此时调用springdatajpa save方法并不会真的把数据提交给数据库,而是缓存起来 ...

  2. 20145223《信息安全系统设计基础》 GDB调试汇编堆栈过程分析

    20145223<信息安全系统设计基础> GDB调试汇编堆栈过程分析 分析的c语言源码 生成汇编代码--命令:gcc -g example.c -o example -m32 进入gdb调 ...

  3. Material Design兼容包的使用

    为了方便自己以后的查找,于是就写了这个博客,废话就不多说,开始干: 导入: compile 'com.android.support:appcompat-v7:24.2.1' compile 'com ...

  4. Android中Retrifit使用总结

    Android中网络请求框架Retrofit的使用注意事项 1.Retrofit是基于OkHttp网络请求框架的二次封装而已,懂Okhttp的小伙伴,那么Retrofit也就基本都会. 2.Retro ...

  5. three.js加载obj模型

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  6. 蜻蜓FM笔试题目,求两个点的最近父节点

    这个博客写的特别好. http://blog.csdn.net/kangroger/article/details/40392925

  7. Eclipse 执行成功的 Hadoop-1.2.1 WordCount 源码

    万事开头难.最近在学习Hadoop,先是搭建各种版本环境,从2.2.0到2.3.0,再到1.2.1,终于都搭起来了,折腾了1周时间,之后开始尝试使用Eclipse编写小demo.仅复制一个现成的Wor ...

  8. 使用TextUtils.isEmpty简单化代码

    如果让你判断一个文本框是否为空(null)或者没有任何值(length=0),你会怎么怎样去写代码,很多初学者可能会这样写: if(text==null || text.length==0) {... ...

  9. C#输出文本树形层次,前或者后自定义空格位数

    Indent String with Spaces This example shows how to indent strings using method for padding in C#. T ...

  10. [转]FINDSTR正则表达式小结

    前言:最近写了一个bat用于快速编译swf至目标目录,想利用FINDSTR命令通过匹配目标目录名称,匹配数量大概600多个,发现匹配耗时比较久,大概花费10余秒,因此还是放弃字符匹配,乖乖拼出全称来定 ...