CREATE OR REPLACE FUNCTION fun_split_str_by_char(str IN VARCHAR, split_char IN VARCHAR,behind IN NUMBER) RETURN VARCHAR2 IS
/* (用时需测试,split_char在str里只出现一次)
* 参数:
* str : (要切割的字符串)
* split_char : (根据此字符切割字符串)
* behind : (0 : 截取'split_char'之前的字符串, 1 : 截取'split_char'之后的字符串, 其它:返回空串)
* eg: fun_split_str_bychar('12345|7890', '|' , 0) , 结果:12345
*/
RESULT VARCHAR2(1024);
v_index NUMBER;
BEGIN
v_index := instr(str,split_char,1,1);
IF behind = 0 THEN
RESULT := substr(str,1,v_index-1);
ELSIF behind = 1 THEN
RESULT := substr(str,v_index+1,length(str));
ELSE RETURN('');
END IF;
RETURN(RESULT);
END fun_split_str_by_char;
/* (用时需测试,split_char在str里只出现一次)
* 参数:
* str : (要切割的字符串)
* split_char : (根据此字符切割字符串)
* behind : (0 : 截取'split_char'之前的字符串, 1 : 截取'split_char'之后的字符串, 其它:返回空串)
* eg: fun_split_str_bychar('12345|7890', '|' , 0) , 结果:12345
*/
RESULT VARCHAR2(1024);
v_index NUMBER;
BEGIN
v_index := instr(str,split_char,1,1);
IF behind = 0 THEN
RESULT := substr(str,1,v_index-1);
ELSIF behind = 1 THEN
RESULT := substr(str,v_index+1,length(str));
ELSE RETURN('');
END IF;
RETURN(RESULT);
END fun_split_str_by_char;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货