› Fóruns › SQL e PL/SQL › Quebrar string SQL › Quebrar string SQL
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.