1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

以下的文章是通过Oracle 字符串split的相关实际应用代码描述来剖析Oracle 字符串split的实际应用,以下就是相关内容的详细介绍。你如果是Oracle 字符串split的疯狂一族的话,以下的文章,你一定不要错过。

Oracle 字符串split的一种方法

一种方法是用函数:这里转帖网上摘抄的一个函数

CREATEORREPLACETYPEstr_splitISTABLEOFVARCHAR2(4000); 
CREATEORREPLACEFUNCTIONsplitstr(p_stringINVARCHAR2,
p_delimiterINVARCHAR2) 
RETURNstr_split 
PIPELINED 
AS 
v_lengthNUMBER:=LENGTH(p_string); 
v_startNUMBER:=1; 
v_indexNUMBER; 
BEGIN 
WHILE(v_start<=v_length) 
LOOP 
v_index:=INSTR(p_string,p_delimiter,v_start); 
IFv_index=0
THEN 
PIPEROW(SUBSTR(p_string,v_start)); 
v_start:=v_length+1; 
ELSE 
PIPEROW(SUBSTR(p_string,v_start,v_index-v_start)); 
v_start:=v_index+1; 
ENDIF; 
ENDLOOP; 
RETURN; 
ENDsplitstr; 

这里提供另外一种方法,利用Oracle 的正则相关函数实现:

selectdbms_lob.substr
(regexp_substr('abc,def,ggg,1,2,3,4,5','[^,]+',1,x.n))
asplayer_guid 
fromduala,
(selectrownumnfromdualconnectbyrownum<100)x 

这里利用了函数 regexp_substr和connect by

其中rownum < 100 会连接限制split的次数 ‘[^,]+’为split拆分的正则表达式,这里为【,】逗号

上面sql语句结果是:

abc 
def 
ggg 
1 
2 
3 
4 
5 

本文来源:1818IP

本文地址:https://www.1818ip.com/post/11780.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。