`
king_tt
  • 浏览: 2287889 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle 自定义split 函数

 
阅读更多

Oracle没有提供split函数,但可以自己建立一个函数实现此功能。比如“abc defg hijkl nmopqr stuvw xyz”,分隔符是空格,但空格个数不定。

源代码:

CREATEORREPLACETYPEty_str_splitISTABLEOFVARCHAR2(4000);

CREATEORREPLACEFUNCTIONfn_var_split(
p_str
INVARCHAR2,
p_delimiter
INVARCHAR2
)
RETURNty_str_split
IS
j
INT:=0;
lenINT:=0;
strVARCHAR2(4000);
str_splitty_str_split:
=ty_str_split();
v_str
VARCHAR2(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 自定义split 函数实例详解

    Oracle 自定义split 函数 Oracle没有提供split函数,但可以自己建立一个函数实现此功能。比如“abc defg hijkl nmopqr stuvw xyz”,分隔符是空格,但空格个数不定。 源代码: CREATE OR REPLACE TYPE ty_str_...

    oracle split函数

    在Oracle数据库中,并没有内置的split函数来处理字符串的分割操作。然而,在实际应用中,经常需要将一个包含多个值的字符串按照指定的分隔符进行拆分,转换为表格式的数据,以便进行进一步的处理或查询。为此,可以...

    oracle数据库自定义split函数和调用具体实现

    总的来说,通过自定义的`job_split`函数,我们不仅能够根据指定的分隔符拆分字符串,还可以根据工号查询关联表获取对应的员工姓名,如果工号不存在于关联表中,则返回原始的工号,实现了题目所要求的功能。这个函数...

    Oracle函数:根据自定义分隔符拆分字段SPLIT-STR()然后查询检索数据库表数据

    4、易于集成:函数设计简洁,易于集成到现有的Oracle数据库系统中,无需复杂的配置和改造。 5、优化查询性能:通过避免复杂的子查询和嵌套循环,我们的函数显著提升了数据处理的速度,减少了数据库资源的消耗,让您...

    oracle_split_函数_返回数组

    在Oracle数据库中,由于内置函数不直接支持像Java中的`split`那样拆分字符串并返回数组,因此开发者需要自定义函数来实现这一功能。这里提到的两种方法都是为了解决这个问题,即根据指定的分隔符将字符串拆分为一个...

    oracle split 函数

    ### Oracle Split函数实现与应用 #### 一、Oracle Split函数简介 在Oracle数据库中,处理字符串是一项常见的需求,尤其是在需要将包含特定分隔符的字符串分割成多个独立的部分时。Oracle标准SQL并没有提供直接用于...

    oracle字符串分割自定义函数

    oracle中没有方便分割字符串的的函数,仿照c#中的split方法和网友的方法,并进行了改进,(1)先自定义个类型str_split,(2)分割函数splitstr,返回table;(3)取第n个数组的get_splitstr,用户1,2,3部建好,使用时只需要...

    给Oracle添加split和splitstr函数的方法

    在Oracle数据库中,由于默认的SQL语法并不支持像JavaScript或.NET框架中那样直接对字符串进行`split`操作,所以在处理批量操作时,需要通过自定义函数来实现类似的功能。这里介绍的方法是创建两个用户自定义函数,即...

    F_SPLIT-字符函数.sql

    oracle自定义函数,字符串分解,可按分隔符分解字符串,分隔符可自己随便定义,非常灵活。欢迎下载。

    Oracle拆分字符串,字符串分割的函数

    如果内置函数无法满足需求,可以创建自定义PL/SQL函数来实现特定的字符串拆分逻辑。 7. **示例应用** 例如,我们有一个以逗号分隔的字符串,如"apple,banana,orange",我们可以使用`instr()` 和 `substr()` 结合...

    oracle分隔字符串函数

    本文将详细介绍如何在 Oracle 中实现字符串分隔功能,并通过创建一个自定义的函数来实现这一目标。 #### 二、需求背景 假设我们有一个包含逗号分隔的字符串列表,需要将其拆分为单独的字符串值以便进一步处理。...

    添加split和splitstr函数-oracle培训.pdf

    在本文中,我们将探讨如何在Oracle中添加`split`和`splitstr`这两个自定义函数,以优化批量操作的性能。 首先,我们需要创建一个名为`tabletype`的表类型,用于存储分割后的字符串元素: ```sql create or replace...

    添加split和splitstr函数-oracle培训.docx

    为了解决这个问题,这里引入了两个自定义函数:`split` 和 `splitstr`,它们可以极大地提高处理字符串的效率,特别是对于批量操作。 首先,我们来看`splitstr`函数。这个函数由Sean Zhang编写,它的主要功能是根据...

    异种数据库函数和标准SQL语法比较Oracle与SqlServer.rar

    - Oracle的`REGEXP_LIKE`支持正则表达式匹配,SQL Server则需使用`PATINDEX`和`LIKE`组合,或引入`fn_split_delimited_string`等自定义函数。 4. **分组和聚合**: - Oracle的`RANK`, `DENSE_RANK`和`ROW_NUMBER`...

    oracle函数大全

    以上只是Oracle函数大全中的一部分,实际还包括更多的系统函数、自定义函数和PL/SQL过程等。通过深入学习和实践,开发者可以充分利用这些函数来处理复杂的数据查询和计算任务,提升数据库管理效率。在日常工作中,...

    oracle 函数判断字符串是否包含图片格式的实例代码

    总结起来,本文介绍了如何在Oracle中使用自定义函数来检查字符串是否包含图片格式。通过创建`fn_split`和`fn_ispng`这两个函数,我们可以方便地处理字符串,判断其中是否存在特定的图片扩展名。这在数据处理和验证...

    oracle字段类型转换的处理

    在Oracle数据库中,字段类型转换是一项常见的...总的来说,Oracle字段类型转换是数据库管理中的常见任务,通过SQL语句或自定义脚本可以方便地完成。了解并熟练掌握这些转换方法,能帮助你在处理数据时更加灵活高效。

    jsp分页 oracle 插件demo

    分页插件则可以简化这一过程,提供预定义的函数和模板,帮助开发者快速实现分页功能。 在Oracle数据库中,我们可以使用SQL查询的`ROWNUM`关键字配合`WHERE`子句来实现分页。例如,如果每页显示10条记录,我们可以...

Global site tag (gtag.js) - Google Analytics