`

oracle数据库split()方法的实现与测试

阅读更多
1 参考资料:http://sonic10101.iteye.com/blog/394187
2 具体SQL:
CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000)
CREATE OR REPLACE FUNCTION fn_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2)
    RETURN ty_str_split
IS
    j INT := 0;
    i INT := 1;
    len INT := 0;
    len1 INT := 0;
    str VARCHAR2 (4000);
    str_split ty_str_split := ty_str_split ();
BEGIN
    len := LENGTH (p_str);
    len1 := LENGTH (p_delimiter);

    WHILE j < len
    LOOP
        j := INSTR (p_str, p_delimiter, i);

        IF j = 0
        THEN
            j := len;
            str := SUBSTR (p_str, i);
            str_split.EXTEND;
            str_split (str_split.COUNT) := str;

            IF i >= len
            THEN
                EXIT;
            END IF;
        ELSE
            str := SUBSTR (p_str, i, j - i);
            i := j + len1;
            str_split.EXTEND;
            str_split (str_split.COUNT) := str;
        END IF;
    END LOOP;

    RETURN str_split;
END fn_split;


3 测试SQL
select fn_split('1,2,3,4,',',') from dual;
select t.* from (SELECT *   FROM TABLE (CAST (fn_split ('1;;12;;123;;1234;;12345', ';;') AS ty_str_split)))t


分享到:
评论

相关推荐

    oracle_split_函数_返回数组

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

    oracle split函数

    通过上述两种方法,我们可以有效地在Oracle数据库中实现字符串的分割操作。这些方法不仅可以帮助我们在查询时更灵活地处理数据,还可以提高查询效率。需要注意的是,当字符串非常长或者分隔符比较复杂时,可能会影响...

    (完整word版)ORACLE数据库期末考试题目及答案.docx

    根据提供的文档信息,这里主要涉及的是Oracle数据库的相关知识点,包括了数据库管理系统的各种概念、操作以及编程技术。下面将对这些知识点进行详细的解释与扩展。 ### 重要知识点解析 #### 1. SGA (System Global...

    Oracle 自定义split 函数实例详解

    在Oracle数据库中,系统并未内置一个直接用于字符串分割的`SPLIT`函数,但我们可以根据需求自定义一个。本文将详细介绍如何在Oracle中创建一个自定义的`SPLIT`函数,以及如何使用这个函数进行字符串处理。 首先,...

    oracle RAC 测试案例.doc

    Oracle RAC,全称为Real Application Clusters,是Oracle数据库的一个重要特性,用于构建高可用性和高性能的数据库集群。本文档详细介绍了对Oracle 10g RAC实施的高可用性功能测试,通过模拟各种故障场景来验证RAC的...

    ORACLE,mysql,sqlserver,sybase数据库装文本软件

    1或者oracle, oracle数据库,不区分大小写,默认1,需java1.5及以上版本 2或者sqlserver, mssqlserver数据库,不区分大小写,需java1.6及以上版本 3或者mysql, mysql数据库,不区分大小写,需java1.5及以上版本 4或者...

    OraSpeedTest.rar

    尽管这个程序可能无法直接应用于现代的Oracle数据库环境,但它的源代码仍可以作为理解过去数据库性能测试策略和C++与Oracle集成的宝贵资源。对于学习和研究历史的开发实践,或者对老版本Oracle有需求的人来说,这是...

    oracle自动一年建立表分区.zip

    在Oracle数据库系统中,表分区是一种高级特性,用于提高数据管理效率、提升查询性能和简化维护工作。"Oracle自动一年建立表分区.zip"文件显然包含了用于自动创建按时间(一年)分区的Oracle脚本。这样的脚本对于处理...

    ORACLE OSB开发指南

    此部分详细介绍了在Oracle Service Bus中执行各种任务的方法,包括但不限于: - **项目与资源管理**:创建、编辑、克隆项目和文件夹,定义资源命名规则。 - **资源配置项目**:创建配置项目以管理项目的部署配置。 ...

    oracle rac

    《大话Oracle RAC》一书由张晓明所著,深入浅出地介绍了Oracle Real Application Clusters(RAC)的各个方面,对于数据库开发者、初学者以及相关从业人员来说,是一本不可多得的参考手册。以下是对该书中部分关键...

    基于Oracle RAC 双活方案实施,如何规避脑裂风险- 最佳实践.docx

    7. **故障模拟与测试**: 定期进行故障模拟测试可以帮助识别潜在的问题,并验证现有策略的有效性。这包括模拟网络中断、硬件故障等场景,确保系统能够在各种情况下稳定运行。 8. **文档记录与培训**: 建立详尽的文档...

    Delphi文本和数据库表格记录的转换..rar

    10. **测试与验证**:完成转换后,应进行充分的测试,确保数据的完整性和一致性。可以编写单元测试或集成测试来验证转换过程的正确性。 以上就是关于"Delphi文本和数据库表格记录的转换"这一主题的关键知识点,涵盖...

    Ibatis.net结合oracle批量删除实现代码

    本文将详细介绍如何在使用***框架的基础上,结合Oracle数据库实现批量删除的操作,并提供相应的示例代码进行参考。 首先,我们需要了解***框架的基本工作原理。*** 是一个对象关系映射(ORM)框架,它允许开发者...

    php网络开发完全手册

    13.7 数据库设计的方法与步骤 210 13.7.1 需求分析 211 13.7.2 概念设计的E-R方法 214 13.7.3 数据库的逻辑设计方法 215 13.7.4 物理设计阶段 218 13.7.5 数据库的实施阶段 218 13.7.6 数据库的运行和维护阶段 218 ...

    详解oracle管道函数的用法(一行拆为多行)

    在Oracle数据库中,管道函数通过将数据流式传输到结果集中来实现这一点,而不是一次性返回所有的结果。这在处理大量数据时能提高性能,因为它允许数据库在计算过程中逐步传递结果,而不需要等到整个计算完成。 **1....

    DS-00410-SF_ORAC_CN.pdf

    7. **Split Brain**:Split Brain是指在分布式系统中,由于网络问题导致的部分节点失去与其他节点的联系,各自认为自己是唯一有效的部分,可能会造成数据不一致。I/O Fencing是解决此问题的关键措施。 8. **...

    winrunner资料

    3. **参数化测试**:通过将测试数据与脚本分离,实现更灵活的测试方案。这样可以在不同的输入条件下重复执行相同的测试步骤。 4. **测试结果分析**:除了基本的通过/失败判断外,WinRunner还提供了丰富的测试结果...

    如何安装虚拟机以及相关故障的处理

    在IT领域,虚拟化技术是不可或缺的一部分,它...总的来说,安装虚拟机和Oracle数据库是一个涉及多个环节的过程,每个环节都需要仔细规划和执行。遇到问题时,保持耐心,充分利用网络资源,你一定能找到解决问题的方法。

    java常用词语例子以及解释

    例如,连接到Oracle数据库时: ```java Class.forName("oracle.jdbc.driver.OracleDriver"); ``` 接下来,通过提供JDBC URL、用户名和密码来创建数据库连接: ```java Connection conn = DriverManager.get...

Global site tag (gtag.js) - Google Analytics