Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagesql
//Oracle type
CREATE OR REPLACE TYPE type_string_array AS TABLE OF VARCHAR2(2000);

//Our split function
CREATE OR REPLACE FUNCTION splitString (s_delimited_list_in VARCHAR2, s_delimiter_in VARCHAR2)
																	  RETURN type_string_array PIPELINED
IS
 l_idx               PLS_INTEGER;
 l_list              VARCHAR2(32767) := s_delimited_list_in;
 l_value             VARCHAR2(32767);
 ls_delimiter        VARCHAR2(100) := NVL(s_delimiter_in,',');
BEGIN
  LOOP
    l_idx := INSTR(l_list,ls_delimiter);
    IF (l_idx > 0) THEN
      PIPE ROW(SUBSTR(l_list,1,l_idx-1));
      l_list := SUBSTR(l_list,l_idx+LENGTH(ls_delimiter));
    ELSE
      PIPE ROW(l_list);
      EXIT;
    END IF;
  END LOOP;
RETURN;
END splitString; 

...