oracle 字符串转换成数组类型

1.首先oracle 中没有 array类型,需要自定义一下数组类型;
CREATE OR REPLACE TYPE DW_ARRAY AS ARRAY(200) OF varchar2(1024);
2.穿创建函数,字符串(逗号拼接的字符串),转换成数据类型
CREATE OR REPLACE Function StrToArray(
Str1 Varchar2, —待转换成数组的字符串
StrSplit Varchar2 —分隔符
)
Return DW_ARRAY Is

/**
将字符串转换成数字的函数
Str1: 待转换字符串,
StrSplit: 分隔符
*/

l_Array DW_ARRAY;

Begin

select regexp_substr(Str1,‘[^’ || StrSplit || ‘]+’,1,Level) as arr
bulk collect into l_Array
from dual connect by level <= length(REGEXP_REPLACE(Str1,‘[^’ || StrSplit || ‘]+’))+1;

Return l_Array;

End StrToArray;

3.可以调用函数直接使用了

你可能感兴趣的:(oracle,数据库,oracle函数,oracle,types)