字符串分割函数
袁光东
分割特殊字符串连接的字符
字符串为:1001;v1.0;10;
get_part_char('1001;v10;10;',';',1)
的结果为1001
Parameters:
pi_string 要处理的字符
pi_separator 分隔符
pi_count 第n个分隔符
function get_part_char(pi_string in varchar2, pi_separator in varchar2, pi_count number) return varchar2 is
pos number;
c_pos number;
begin
if pi_string is null or pi_separator is null then
return '';
end if;
if pi_count < 1 then
return '';
end if;
if pi_count = 1 then
pos := instr(pi_string, pi_separator);
if pos = 0 then
return pi_string;
else
return substr(pi_string,0,pos-1);
end if;
else
pos := instr(pi_string, pi_separator,1,pi_count -1);
c_pos := instr(pi_string, pi_separator, 1, pi_count)
if pos = 0 then
return '';
end if;
if c_pos = 0 then
return substr(pi_string, pos+1, length(pi_string) - pos);
else
return substr(pi_string, pos+1, c_pos - pos -1);
end if;
end if;
end get_part_char;