CREATE OR REPLACE FUNCTION F_SPLIT
/*
* 功 能: split.
* 输入参数: Liststr string
* 输入参数: Sepe index
* 输入参数: Sepe separator. default is ','.
* return sepeCount
*/
(
Liststr in varchar2,
inde in number,
Sepe in varchar2 := ','
) return varchar2 is
-- 去掉前后分隔符后的字符串
Str varchar2(4000);
-- 要返回的字符串
retStr varchar2(100);
-- 分隔符个数
sepeCount number(4);
begin
-- 去掉前后的分隔符;
Str := TRIM(BOTH Sepe FROM Liststr);
sepeCount := f_getsepcount(Liststr, Sepe);
IF sepeCount = 0 THEN
return Liststr;
END IF;
IF inde > sepeCount THEN
retStr := '0';
ELSIF inde = sepeCount THEN
retStr := Substr(str, Instr(str, Sepe, 1, inde) + 1, length(Str));
ELSIF inde = 0 THEN
retStr := Substr(str, 1, Instr(str, Sepe, 1, 1) - 1);
ELSE
str := SubStr(Str, Instr(str, Sepe, 1, inde) + 1, length(str));
retStr := Substr(str, 1, Instr(str, Sepe, 1, 1) - 1);
END IF;
return retStr;
end;