Oracle没有提供split函数,但可以自己建立一个函数实现此功能。比如“abc defg hijkl nmopqr stuvw xyz”,分隔符是空格,但空格个数不定。
源代码:
CREATEORREPLACETYPEty_str_splitISTABLEOFVARCHAR2(4000);
CREATEORREPLACEFUNCTIONfn_var_split(
p_strINVARCHAR2,
p_delimiterINVARCHAR2
)
RETURNty_str_split
IS
jINT:=0;
lenINT:=0;
strVARCHAR2(4000);
str_splitty_str_split:=ty_str_split();
v_strVARCHAR2(4000):=RTRIM(LTRIM(p_str,p_delimiter),p_delimiter);
BEGIN
len:=LENGTH(v_str);
WHILElen>0
LOOP
j:=INSTR(v_str,p_delimiter,1);
IFj=0
THEN
str:=SUBSTR(v_str,1);
len:=0;
str_split.EXTEND;
str_split(str_split.COUNT):=str;
ELSE
str:=SUBSTR(v_str,1,j-1);
v_str:=LTRIM(LTRIM(v_str,str),p_delimiter);
len:=LENGTH(v_str);
str_split.EXTEND;
str_split(str_split.COUNT):=str;
ENDIF;
ENDLOOP;
RETURNstr_split;
ENDfn_var_split;
/
测试:
结果:
1
12
123
1234
12345
DECLARE
CURSORc
IS
SELECT*FROMTABLE(CAST(fn_var_split(';1;12;;123;;;1234;;;;12345;',';')ASty_str_split));
rc%ROWTYPE;
BEGIN
OPENc;
LOOP
FETCHcINTOr;
EXITWHENc%NOTFOUND;
DBMS_OUTPUT.put_line(r.column_value);
ENDLOOP;
CLOSEc;
END;
/
分享到:
相关推荐
oracle自定义日期函数、你值得拥有!
Oracle没有提供split函数,但可以自己建立一个函数实现此功能。比如“abc defg hijkl nmopqr stuvw xyz”,分隔符是空格,但空格个数不定。 源代码: CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR...
Oracle自定义聚合函数,分析函数.
本文档详细介绍了如何在Oracle数据库中实现像C#等其它编程语言中Split函数来拆分字符的功能。例子简单易懂,并附有详细的实现过程。
主要介绍了Oracle自定义脱敏函数的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
oracle自定义函数的总结,主要对如何定义函数以及使用。
Oracle 自定义函数需求有个字段,工号JOB_NUMBER ='10202804/10133066/10131810',数据库里是编号,所有想写个函数,将JOB_NUMBER 传递进去,然后返回 '张三/李四/王五',如果王五不存在则返回昵称拼接code '张三/...
关于Oracle自定义聚集函数的使用 。
最近在oracle 中用到拆分字符串返回数组,一直头痛,因为在 oracle 中没有类似java中有split 函数 ,所以要自己写。好不容搜到一个。那网上是到处都是这个代码。怎么找都是这个方法,我就用了。这个方法如下: ...
* 自定义聚合函数 wmsys.wm_concat 替换办法 * 超大字符串拼接,单个字符串4000、分隔符100... * Oracle11g Release2版本引入了LISTAGG 函数,使得聚集连接字符串变得很容易。并且允许使用我们指定连接串中的字段顺序
oracle 自定义函数 解析文件以“|”分割字符串
Oracle自定义函数,很详细的教程,各种函数自定义的详细讲解。
oracle split函数,内有两种实现方式,可直接返回多行记录如: 传入参数: SELECT * FROM TABLE(mm_split('中国,be,c,de',',')); 返回四条记录: 中国 be c de
一、函数的创建、调用和权限1、创建函数create or replace function 函数名(参数1 模式 数据类型,) return 数据类型as --
ORACLE crc3函数,将字符类型转换成唯一的数字类型,例如CSDN,经过crc32函数转换后,得到的值为-1016176976
Oracle效验统一代码正确性的自定义函数,效验规则以国标为准.
Oracle自定义函数返回一张表。主要用于生成一张等时间间隔的表数据。
C#调用Oracle自定义类型存储过程,Oracle存储入参为type类型,对于不熟悉Oracle朋友,可以参考来调用。实现思路和正常调MSSQL一样,先建立连接,再定义一个IOracleCustomType的类,然后Oracle.DataAccess.dll的...
自定义函数不能被直接在Java中调用,可以通过存储过程调用函数的方法。本文采用实例的方法,介绍如何在Oracle数据库客户端PL/SQL中创建自定义函数,然后创建相应的存储过程调用该函数,最终实现一个实例计算。