http://dusiguxia./blog/static/55629316103293991/
--定义数组类型
CREATE OR REPLACE TYPE splittable AS TABLE OF varchar2(100) ;
/
CREATE OR REPLACE FUNCTION split_string
(src VARCHAR2, delimiter varchar2)
--返回为上述定义的数组类型
RETURN splittable IS
psrc VARCHAR2(500);
--定义一个数据变量
a splittable := splittable();
i NUMBER := 1;
j NUMBER := 1;
BEGIN
--去除头和尾的delimiter
psrc := RTrim(LTrim(src, delimiter), delimiter);
LOOP
--从左侧开始确定delimiter在psrc中从j处开始第1此出现的位置
i := InStr(psrc, delimiter, j);
IF i>0 THEN
--扩展表结构
a.extend;
a(a.Count) := Trim(SubStr(psrc, j, i-j));
j := i+1;
END IF;
EXIT WHEN i=0;
END LOOP;
--把最后的字符放到数组中
IF j < Length(psrc) THEN
a.extend;
a(a.Count) := Trim(SubStr(psrc, j, Length(psrc)+1-j));
END IF;
RETURN a;
END;
/
--测试
select * from table (SPLIT_STRING('1,2,3,4',','));
如果觉得《oracle 字符串分割成数组_oracle 自定义字符串分割为数组方法》对你有帮助,请点赞、收藏,并留下你的观点哦!