博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle中增加Split函数
阅读量:7208 次
发布时间:2019-06-29

本文共 1001 字,大约阅读时间需要 3 分钟。

hot3.png

首先,我们增加一个表类型:

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

其实,我们增加相对应的Split函数,该 函数返回ty_str_split表类型

CREATE OR REPLACE FUNCTION FN_SPLIT(P_STR       IN VARCHAR2,                                    P_DELIMITER IN VARCHAR2)  RETURN TY_STR_SPLIT 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;

接下来我们测试

SELECT * FROM TABLE(FN_SPLIT('1#2#3#,4','#'))

转载于:https://my.oschina.net/u/140663/blog/217782

你可能感兴趣的文章
JavaScript的数据类型有哪些?
查看>>
如何只在IE上加载CSS样式表
查看>>
个人博客三|首页后台开发
查看>>
调用链系列四:调用链上下文传递
查看>>
在Windows下,用Hexo搭建博客
查看>>
刷前端面经笔记(十一)
查看>>
【跃迁之路】【724天】程序员高效学习方法论探索系列(实验阶段481-2019.2.14)...
查看>>
Kaggle冠军经验分享丨如何用15个月冲到排行榜的首位
查看>>
Stream流与Lambda表达式(一) 杂谈
查看>>
独家揭秘!阿里大规模数据中心的性能分析
查看>>
Valid
查看>>
大数据驱动的运营创新和探索
查看>>
你属于程序员中的哪种人?
查看>>
基于Mixin Network的PHP比特币开发教程 之一:创建机器人
查看>>
时序数据库连载系列: 时序数据库一哥InfluxDB之存储机制解析
查看>>
sorl实现商品快速搜索
查看>>
Webpack4 学习笔记 - 01:webpack的安装和简单配置
查看>>
236. Lowest Common Ancestor of a Binary Tree
查看>>
300. Longest Increasing Subsequence
查看>>
GO基础编程-自定义函数
查看>>