-- Nested Table
CREATE OR REPLACE TYPE split_str IS TABLE OF VARCHAR(100);
/
-- Function
CREATE OR REPLACE FUNCTION fn_Split
(
p_Str VARCHAR2,
p_Delimiter VARCHAR2
)
RETURN split_str PIPELINED
AS
v_Str VARCHAR(4000) := p_Str;
v_Index NUMBER;
v_SubLength NUMBER;
BEGIN
-- p_Delimiter is null
IF p_Delimiter IS NULL THEN
FOR x IN 1..LENGTH(v_Str)
LOOP
PIPE ROW(SUBSTR(V_Str,x,1));
END LOOP;
RETURN;
END IF;