Pular para o conteúdo

Fóruns SQL e PL/SQL Quebrar string SQL Quebrar string SQL

#77668
Anônimo

    VÊ se te ajuda brother:

    DECLARE
    v_retorna_texto owa_util.vc_arr;
    v_string VARCHAR2(25) :=’1|33|2|158|13|8|9′;

    FUNCTION fun_ret_array(v_texto VARCHAR2, v_separador VARCHAR2)
    RETURN OWA_UTIL.vc_arr
    IS
    cnt NUMBER := 1;
    pos NUMBER := 1;
    acum VARCHAR2 (4000) := v_texto;
    arr_retorno OWA_UTIL.vc_arr;
    BEGIN
    IF v_texto IS NULL OR v_separador IS NULL
    THEN
    RETURN arr_retorno;
    END IF;

     WHILE pos  0
     LOOP
        pos := INSTR (acum, v_separador);
    
        IF pos = 0
        THEN
           arr_retorno (cnt) := acum;
        ELSE
           arr_retorno (cnt) := SUBSTR (acum, 1, pos - 1);
           acum := SUBSTR (acum, pos + LENGTH (v_separador));
           cnt := cnt + 1;
        END IF;
     END LOOP;
    
     RETURN arr_retorno;
    

    END fun_ret_array;
    BEGIN
    v_retorna_texto := fun_ret_array (v_string,’|’);
    FOR x IN 1..v_retorna_texto.COUNT
    LOOP
    dbms_output.put_line(‘Texto Separado: ‘ || v_retorna_texto(x));
    END LOOP;
    END;

    Abraços,

    Trevisolli.