这篇文章主要介绍了Oracle字符串拆分的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Oracle字符串拆分的方法是什么文章都会有所收获,下面我们一起来看看吧。
比如把一列 a,b,c 拆分为
a
b
c
SELECT
regexp_substr('aaa,bbb,ccc', '[^,]+', 1, LEVEL)
FROM
dual
CONNECT BY
LEVEL <= LENGTH('aaa,bbb,ccc')-LENGTH(REPLACE('aaa,bbb,ccc', ','))+ 1;
输出结果:
SELECT
regexp_substr('aaa;bbb;ccc', '[^;]+', 1, LEVEL)
FROM
dual
CONNECT BY
LEVEL <= LENGTH('aaa;bbb;ccc')-LENGTH(REPLACE('aaa;bbb;ccc', ';'))+ 1;
SELECT LEVEL FROM dual CONNECT BY LEVEL<10;
FIND_IN_SET(str,strlist)
CREATE OR REPLACE FUNCTION FIND_IN_SET(piv_str1 varchar2, piv_str2 varchar2, p_sep varchar2 := ',')
RETURN NUMBER IS
l_idx number:=0;
str varchar2(500);
piv_str varchar2(500) := piv_str2;
res number:=0;
loopIndex number:=0;
BEGIN
IF instr(piv_str, p_sep, 1) = 0 THEN
IF piv_str = piv_str1 THEN
res:= 1;
END IF;
ELSE
LOOP
l_idx := instr(piv_str,p_sep);
loopIndex:=loopIndex+1;
IF l_idx > 0 THEN
str:= substr(piv_str,1,l_idx-1);
IF str = piv_str1 THEN
res:= loopIndex;
EXIT;
END IF;
piv_str := substr(piv_str,l_idx+length(p_sep));
ELSE
IF piv_str = piv_str1 THEN
res:= loopIndex;
END IF;
EXIT;
END IF;
END LOOP;
END IF;
RETURN res;
END FIND_IN_SET;
查看aaa是否在aaa,bbb,ccc中
SELECT find_in_set('aaa','aaa,bbb,ccc') FROM dual;
返回1
查看bbb是否在aaa,bbb,ccc中
SELECT find_in_set('bbb','aaa,bbb,ccc') FROM dual;
返回2
查看ddd是否在aaa,bbb,ccc中
SELECT find_in_set('ddd','aaa,bbb,ccc') FROM dual;
返回0
DROP FUNCTION FIND_IN_SET;
CREATE OR REPLACE PROCEDURE SPLIT_STR(STRLIST IN VARCHAR2)
IS
CURSOR CHECK_FLAG IS
SELECT REGEXP_SUBSTR(STRLIST, '[^,]+', 1, LEVEL) F_VALUE
FROM DUAL
CONNECT BY LEVEL <=
LENGTH(STRLIST) - LENGTH(REPLACE(STRLIST, ',')) + 1;
BEGIN
FOR REC IN CHECK_FLAG LOOP
DBMS_OUTPUT.PUT_LINE(REC.F_VALUE);
END LOOP;
END SPLIT_STR;
DECLARE
BEGIN
SPLIT_STR('aaa,bbb,ccc');
END;
执行结果:
DROP PROCEDURE SPLIT_STR;
关于“Oracle字符串拆分的方法是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Oracle字符串拆分的方法是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://blog.csdn.net/stormkai/article/details/125775055