PLSQL 实现split
(
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;
例二
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相关推荐
- PLSQL Split分割字符串
系统自带的split,使用起来方便,但是如果字符串太长,可能会出现异常,这里,我自己写了一个也是该名字,放在自己的包中,引用的时候带包名就好了. --系统自带的函数 /*CURSOR cur_temp ...
- oracle10g ty_str_split,Oracle split(分隔字符串函数)
一 Oracle版本: 10g PLSQL: 8.0 二 具体代码如下: 1 类型 CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 ( ...
- plsql配置多数据源,想换哪个换哪个
现在的公司内部普遍使用plsql对数据库进行管理.而数据库非常多,从测试到线上环境数据库那么多,我们通常使用同一配置管理,便于切换.那么配置数据库连接就成为了很重要的一步. 1.安装plsql (这里 ...
- 逗号分隔的字符串转换为Python中的列表 split
将逗号分隔的字符串转换为Python中的列表 给定一个字符串: 它是由逗号分隔的几个值的序列: mStr = '192.168.1.1,192.168.1.2,192.168.1.3' 如何将字符串转 ...
- 解决plsql中文显示问号(???)问题
最近新买的电脑,配置好数据库连接后,plsql查看数据与插入中文数据都显示问号(???),同事的都正常显示,查看了很多资料,有的说是数据库字符集的原因让修改数据库的字符集,但是我的数据库都是远程连接正 ...
- python join split
本文记录python,join和split函数的用法. 参考 http://blog.csdn.net/doiido/article/details/43538833 http://blog.csdn ...
- 【转】oracle PLSQL基础学习
[转]oracle PLSQL基础学习 --oracle 练习: /**************************************************PL/SQL编程基础****** ...
- C# split 几种使用方法
第一种方法: string s = "abcdeabcdeabcde"; string[] sArray = s.Split('c') ...
- 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' ...
最新文章
- 2021-2027年中国医疗美容市场研究及前瞻分析报告
- 深入浅析zookeeper的一致性模型及其实现
- 删除字符串中多余的空白字符和空行(C语言实现)
- 业界率先支持 MCP-OVER-XDS 协议,Nacos 2.0.1 + 1.4.2 Release 正式发布
- 【Tomcat Eclipse】8080端口被占用问题记录
- CNN结构:用于检测的CNN结构进化-一站式方法
- python是如何实现进程池和线程池的_进程、线程、线程池和协程如何理解?
- FFmpeg options
- 前端学习(1542):cdn简介
- mysql查询结果每条记录两个字段求和_MYSQL实现将两个结果集合并,并且按照时间字段分组,其他字段的值求和...
- iphone版 天行skyline_SkyLine
- pthread 线程冲突一个简单例子
- php 之将图片转换base64编码(为百度ocr作准备,解决 image format error)
- windows下的Zcash钱包(ZEC钱包)-zcash4win 1.0.11
- EdrawMax 11 for mac(亿图图示)中文版
- 电脑在指定时间关机的指令代码
- cinahl数据库怎么进入_CINAHL数据库的检索系统及相关检索方法
- YNWA,同样是我们普通人的鞭策
- 实施不良资产证券化 信用评级不能少
- 基于pytorch下用LSTM做股票预测——超详细