Oracle 自定义split 函数

Oracle没有提供split函数,但可以自己建立一个函数实现此功能。比如“abc defg  hijkl   nmopqr     stuvw  xyz”,分隔符是空格,但空格个数不定。

源代码:

CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000);

CREATE OR REPLACE FUNCTION fn_var_split (

p_str IN VARCHAR2,

p_delimiter IN VARCHAR2

)

RETURN ty_str_split

IS

j INT := 0;

len INT := 0;

str VARCHAR2 (4000);

str_split ty_str_split := ty_str_split ();

v_str VARCHAR2 (4000) := RTRIM (LTRIM (p_str, p_delimiter), p_delimiter);

BEGIN

len := LENGTH (v_str);

WHILE len > 0

LOOP

j := INSTR (v_str, p_delimiter, 1);

IF j = 0

THEN

str := SUBSTR (v_str, 1);

len := 0;

str_split.EXTEND;

str_split (str_split.COUNT) := str;

ELSE

str := SUBSTR (v_str, 1, j - 1);

v_str := LTRIM (LTRIM (v_str, str), p_delimiter);

len := LENGTH (v_str);

str_split.EXTEND;

str_split (str_split.COUNT) := str;

END IF;

END LOOP;

RETURN str_split;

END fn_var_split;

/

测试结果:

1

12

123

1234

12345

DECLARE

CURSOR c

IS

SELECT * FROM TABLE (CAST (fn_var_split (';1;12;;123;;;1234;;;;12345;', ';') AS ty_str_split));

r c%ROWTYPE;

BEGIN

OPEN c;

LOOP

FETCH c INTO r;

EXIT WHEN c%NOTFOUND;

DBMS_OUTPUT.put_line (r.column_value);

END LOOP;

CLOSE c;

END;

/

(资源库 www.zyku.net)

oracle中split的使用方法,Oracle 自定义split 函数实例详解相关推荐

  1. android 刷新标题栏,Android 自定义标题栏的实例详解

    Android 自定义标题栏的实例详解 开发 Android APP 经常会用到自定义标题栏,而有多级页面的情况下还需要给自定义标题栏传递数据. 本文要点: 自定义标题填充不完整 自定义标题栏返回按钮 ...

  2. python代码图片头像_Flask 上传自定义头像的实例详解

    Flask Web 开发这本书基本上做完了,后面还需要温习,但是自己做的博客总觉得简陋了点,所以,在动脑子开发新功能 今天想到最基本的功能,自定义头像 那这样的功能,设计到2大基本功能块 1:如何进行 ...

  3. python format函数实例_python中强大的format函数实例详解

    python中format函数用于字符串的格式化 自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串. 语法 它通过{}和:来代替%. 请看下 ...

  4. python中def func是什么意思_Python的函数参数详解

    原标题:Python的函数参数详解 前言 Python中函数的参数可以分为两大类形参和实参~ def func(x, y): # x, y 就是形参 print(x, y) func(2, 3) # ...

  5. python3中find函数的用法_Python3正则匹配re.split,re.finditer及re.findall函数用法详解...

    本文实例讲述了Python3正则匹配re.split,re.finditer及re.findall函数用法.分享给大家供大家参考,具体如下: re.split re.finditer re.finda ...

  6. oracle中获取时间的方法,oracle中获取系统当前时间,启动时间以及运行时间

    1.获取当前时间 可以通过如下三种方式获取当前时间: select sysdate from dual; select Current_date from dual; select SYSTIMEST ...

  7. php类和自定义函数实例,php中三个调用用户自定义函数实例详解

    在php中调有自定义函数,经常会用到call_user_func函数.call_user_func_array函数.call_user_func函数. 1,call_user_func函数类似于一种特 ...

  8. java中document解析jsp,JSP基于dom解析xml实例详解

    本文实例讲述了JSP基于dom解析xml的方法.分享给大家供大家参考,具体如下: 初次学习用dom操作xml文件,有很多不足之处,牛人多给点建议,练习时我没对中文做乱码处理,也没做验证哦!O(∩_∩) ...

  9. java trim函数的使用方法_java trim的用法实例详解

    rim方法一般用来去除空格,但是根据JDK API的说明,该方法并不仅仅是去除空格,它能够去除从编码'\u0000′ 至 '\u0020′ 的所有字符. 回车换行也在这20个字符之中,以下是一个示例: ...

最新文章

  1. Hadoop安装教程_分布式集群
  2. Spring @SessionAttributes @ModelAttribute
  3. 拒绝不靠谱的需求:怎样确定需求才是正确的?
  4. Android 屏幕防偷窥,华为Mate30怎么设置防偷窥 AI智能防偷窥功能使用方法
  5. 前端学习(1550):$scope和调试工具
  6. canvas 在线画图
  7. oracle ro,ORACLE学习笔记一
  8. iOS 使点击事件穿透透明的UIView
  9. Cacti监控mysql数据库server实现过程
  10. Gulp,grunt,seajs/require和browserify/webpack的区别
  11. varnish4.0简介
  12. FishC笔记—29 讲 文件:一个任务
  13. 企业内IT部/信息部发展阶段和趋势(第一阶段)
  14. html5取消backspace后退功能,js屏蔽退格键(backspace或者叫后退键与F5)
  15. WinMerge 过滤器的使用方法
  16. centOS7 单机 mysql 5.7.24 主从
  17. 智能灯泡的应用及使用场景
  18. python判断函数if-elif-else介绍
  19. c语言带variable的作用,C语言讲义——变量(variable)
  20. 蚂蚁金服组件 ReferenceError: primordials is not defined

热门文章

  1. strace命令详解
  2. 飞康与红帽到底哪里像?软件定义存储让飞康走得更远!
  3. 马的遍历(BFS)-洛谷
  4. 老鸟教你如何5步做好QQ空间日引1000+精准粉的基础
  5. 人体姿态估计中的可视化---画出预测关节位置3D图和地面真实图
  6. arcgis 10.2 创建style图标文件
  7. ERP与进销存、财务软件的区别
  8. QML基础以及Qt Quick应用
  9. 目前流行的装修风格_当下最流行的十大装修风格,目前主流装修风格前十
  10. consul下载安装