DECLARE
V_LENGTH NUMBER;
V_TMP VARCHAR2(10);
V_STR VARCHAR2(20) := '12;6;2;5;3';
BEGIN
V_LENGTH := LENGTH(V_STR) - LENGTH(REPLACE(V_STR, ';', '')) + 1;
FOR i IN 1..V_LENGTH LOOP
SELECT REGEXP_SUBSTR(V_STR, '[^;]+', 1, i) INTO V_TMP FROM DUAL;
DBMS_OUTPUT.put_line(V_TMP);
END LOOP;
END;
/
V_LENGTH NUMBER;
V_TMP VARCHAR2(10);
V_STR VARCHAR2(20) := '12;6;2;5;3';
BEGIN
V_LENGTH := LENGTH(V_STR) - LENGTH(REPLACE(V_STR, ';', '')) + 1;
FOR i IN 1..V_LENGTH LOOP
SELECT REGEXP_SUBSTR(V_STR, '[^;]+', 1, i) INTO V_TMP FROM DUAL;
DBMS_OUTPUT.put_line(V_TMP);
END LOOP;
END;
/
本文介绍了一个使用PL/SQL实现字符串拆分的方法。通过定义变量并利用REGEXP_SUBSTR函数配合循环结构,从输入字符串中提取出每个分号间隔的子串,并输出这些子串。该示例展示了如何在Oracle数据库环境中处理字符串数据。
406

被折叠的 条评论
为什么被折叠?



