您的位置:首页 > 数据库 > Oracle

ORACLE实现字符串分割SPLIT

2016-08-01 11:17 453 查看
CREATE OR REPLACE TYPE str_split_table IS TABLE OF VARCHAR2 (4000);

CREATE OR REPLACE FUNCTION str_split(p_string IN VARCHAR2, p_delimiter IN VARCHAR2)

    RETURN str_split_table 

    PIPELINED

AS

    v_length   NUMBER := LENGTH(p_string);

    v_start    NUMBER := 1;

    v_index    NUMBER;

BEGIN

    WHILE(v_start <= v_length)

    LOOP

        v_index := INSTR(p_string, p_delimiter, v_start);

        IF v_index = 0

        THEN

            PIPE ROW(SUBSTR(p_string, v_start));

            v_start := v_length + 1;

        ELSE

            PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start));

            v_start := v_index + 1;

        END IF;

    END LOOP;

    RETURN;

END str_split;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息