这是网上流传的oracle数据库split()方法的实现,我应用在自己的项目中,感觉十分不错,值得推荐,希望对大家有所帮助。
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;
/
测试:
DECLARE
CURSOR c
IS
SELECT *
FROM TABLE (CAST (fn_split ('1;;12;;123;;1234;;12345', ';;') AS ty_str_split
)
);
r c%ROWTYPE;
BEGIN
OPEN c;
LOOP
FETCH c INTO r;
EXIT WHEN c%NOTFOUND;
DBMS_OUTPUT.put_line (r.column_value);
END LOOP;
CLOSE c;
END;
/
结果:
1
12
123
1234
12345
分享到:
相关推荐
在Oracle数据库中,由于内置函数不直接支持像Java中的`split`那样拆分字符串并返回数组,因此开发者需要自定义函数来实现这一功能。这里提到的两种方法都是为了解决这个问题,即根据指定的分隔符将字符串拆分为一个...
通过上述两种方法,我们可以有效地在Oracle数据库中实现字符串的分割操作。这些方法不仅可以帮助我们在查询时更灵活地处理数据,还可以提高查询效率。需要注意的是,当字符串非常长或者分隔符比较复杂时,可能会影响...
根据提供的文档信息,这里主要涉及的是Oracle数据库的相关知识点,包括了数据库管理系统的各种概念、操作以及编程技术。下面将对这些知识点进行详细的解释与扩展。 ### 重要知识点解析 #### 1. SGA (System Global...
在Oracle数据库中,系统并未内置一个直接用于字符串分割的`SPLIT`函数,但我们可以根据需求自定义一个。本文将详细介绍如何在Oracle中创建一个自定义的`SPLIT`函数,以及如何使用这个函数进行字符串处理。 首先,...
Oracle RAC,全称为Real Application Clusters,是Oracle数据库的一个重要特性,用于构建高可用性和高性能的数据库集群。本文档详细介绍了对Oracle 10g RAC实施的高可用性功能测试,通过模拟各种故障场景来验证RAC的...
1或者oracle, oracle数据库,不区分大小写,默认1,需java1.5及以上版本 2或者sqlserver, mssqlserver数据库,不区分大小写,需java1.6及以上版本 3或者mysql, mysql数据库,不区分大小写,需java1.5及以上版本 4或者...
尽管这个程序可能无法直接应用于现代的Oracle数据库环境,但它的源代码仍可以作为理解过去数据库性能测试策略和C++与Oracle集成的宝贵资源。对于学习和研究历史的开发实践,或者对老版本Oracle有需求的人来说,这是...
在Oracle数据库系统中,表分区是一种高级特性,用于提高数据管理效率、提升查询性能和简化维护工作。"Oracle自动一年建立表分区.zip"文件显然包含了用于自动创建按时间(一年)分区的Oracle脚本。这样的脚本对于处理...
此部分详细介绍了在Oracle Service Bus中执行各种任务的方法,包括但不限于: - **项目与资源管理**:创建、编辑、克隆项目和文件夹,定义资源命名规则。 - **资源配置项目**:创建配置项目以管理项目的部署配置。 ...
《大话Oracle RAC》一书由张晓明所著,深入浅出地介绍了Oracle Real Application Clusters(RAC)的各个方面,对于数据库开发者、初学者以及相关从业人员来说,是一本不可多得的参考手册。以下是对该书中部分关键...
7. **故障模拟与测试**: 定期进行故障模拟测试可以帮助识别潜在的问题,并验证现有策略的有效性。这包括模拟网络中断、硬件故障等场景,确保系统能够在各种情况下稳定运行。 8. **文档记录与培训**: 建立详尽的文档...
10. **测试与验证**:完成转换后,应进行充分的测试,确保数据的完整性和一致性。可以编写单元测试或集成测试来验证转换过程的正确性。 以上就是关于"Delphi文本和数据库表格记录的转换"这一主题的关键知识点,涵盖...
本文将详细介绍如何在使用***框架的基础上,结合Oracle数据库实现批量删除的操作,并提供相应的示例代码进行参考。 首先,我们需要了解***框架的基本工作原理。*** 是一个对象关系映射(ORM)框架,它允许开发者...
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数据库中,管道函数通过将数据流式传输到结果集中来实现这一点,而不是一次性返回所有的结果。这在处理大量数据时能提高性能,因为它允许数据库在计算过程中逐步传递结果,而不需要等到整个计算完成。 **1....
7. **Split Brain**:Split Brain是指在分布式系统中,由于网络问题导致的部分节点失去与其他节点的联系,各自认为自己是唯一有效的部分,可能会造成数据不一致。I/O Fencing是解决此问题的关键措施。 8. **...
3. **参数化测试**:通过将测试数据与脚本分离,实现更灵活的测试方案。这样可以在不同的输入条件下重复执行相同的测试步骤。 4. **测试结果分析**:除了基本的通过/失败判断外,WinRunner还提供了丰富的测试结果...
在IT领域,虚拟化技术是不可或缺的一部分,它...总的来说,安装虚拟机和Oracle数据库是一个涉及多个环节的过程,每个环节都需要仔细规划和执行。遇到问题时,保持耐心,充分利用网络资源,你一定能找到解决问题的方法。
例如,连接到Oracle数据库时: ```java Class.forName("oracle.jdbc.driver.OracleDriver"); ``` 接下来,通过提供JDBC URL、用户名和密码来创建数据库连接: ```java Connection conn = DriverManager.get...