问题:
在oracle中没有split这个函数,但是我们可能会经常分割字符串,这时,我们可以写一个自定义的函数,实现split分割字符串的效果。
解决方法:
create or replace type varchartype as table of varchar2(200);
-- 创建一个table类型,用于接受分割下来的字符串
-- 创建函数
create or replace function fun_split(str varchar2) return varchartype
is
strs varchartype:=varchartype(); --声明一个strs名字为varchartype的table类型
v_i number(2):=1; --记录我是第几个,
v_begin number(2):=1; --截取字符串的开始
v_index number(2):=0; --查找字符(如,等)的索引
begin
loop
v_index:=instr(str,',',1,v_i);
strs.extend; --手动扩展strs的下标
if v_index=0 then --当查找的字符位置为0时即为未找到,直接取字符串即可
strs(v_i):=substr(str,v_begin);
exit;
end if;
strs(v_i):=substr(str,v_begin,v_index-v_begin); --找到时ÿ