Oracle 自定义字符串转换数组函数
2016-12-22 22:12
811 查看
对于VB,Java、.Net或Js等等语言将字符串转换成数组非常方便,它们都提供了标准的转换函数,然而Oracle 官方没有提供类似的标准函数。但是,我们可以自己定一个类似的函数。
1.自定义类型:
2.自定义函数:
3.测试如下:
l_Array(1)=2010015447
l_Array(2)=WK7280MD
l_Array(3)=WX0057
1.自定义类型:
Create Type CuxStrToArray Is Table Of Varchar2(2000);
2.自定义函数:
/* Str1 被转换成数组的字符串 StrSplit 分隔符 */ Create Function StrToArray(Str1 Varchar2, StrSplit Varchar2) Return CuxStrToArray Is l_Array CuxStrToArray; Begin WITH A AS( SELECT Str1 A FROM DUAL) SELECT DECODE(B, 0, SUBSTR(A, C), SUBSTR(A, C, B - C)) bulk collect into l_Array FROM (SELECT A, B, (LAG(B, 1, 0) OVER(ORDER BY LV)) + 1 C FROM (SELECT A, INSTR(A, StrSplit, 1, LEVEL) B, LEVEL LV FROM A CONNECT BY LEVEL <= (LENGTH(A) - LENGTH(REPLACE(A, StrSplit, ''))) + 1)); Return l_Array; End StrToArray;
3.测试如下:
Declare l_Array CuxStrToArray; Str1 Varchar2(2000):='2010015447,WK7280MD,WX0057'; StrSplit Varchar2(1):=','; Begin l_Array := StrToArray(Str1,StrSplit); For i In 1..l_Array.Count Loop dbms_output.put_line('l_Array('||i||')='|| l_Array(i)); End Loop; End;运行输出结果如下:
l_Array(1)=2010015447
l_Array(2)=WK7280MD
l_Array(3)=WX0057
相关文章推荐
- ORACLE 中字符串转换为数组的函数方法
- Oracle自定义函数解决数据类型转换出错的问题
- 黑马程序员_学习日记40_605基础加强(自定义泛型、装拆箱、foreach、文件操作、字符串与byte数组转换)
- oracle 字符串转数组的函数
- Oracle字符串转换成数字函数to_number
- oracle根据分隔符将字符串分割成数组函数
- Oracle个别日期格式在SQL Server中的转换(自定义函数)
- Crystal自定义函数(转换为大写,返回数组,求和)
- js join()函数将数组转换成字符串
- oracle自定义函数按照某个分隔符拆分字符串
- SQL自定义函数split 将数组(分隔字符串)返回阵列(表)
- oracle过滤分割字符串自定义函数
- 将字符串对转换成字典(临时表)的自定义函数(SQL)
- oracle中将字符串转换成数组
- 自定义的parse_url逆向函数http_build_url,将数组转为url字符串
- oracle 字符串转数组的函数
- oracle 把字符串转换成数组
- oracle过滤分割字符串自定义函数
- Oracle TO_CHAR()和TO_DATA()函数日期和字符串互相转换
- http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理,及它的逆向函数