1).创建包头
create or replace PACKAGE my_package is type res_str is table of varchar2(100); function splitStr(p_str in varchar2, p_split in varchar2) return res_str pipelined; end my_package;
2).创建包体
create or replace package body my_package is function splitStr(p_str in varchar2, p_split in varchar2) return res_str pipelined as v_len number := length(p_str); v_start number := 1; v_index number; begin while (v_start <= v_len) loop v_index := instr(p_str, p_split, v_start); if v_index = 0 then pipe row(substr(p_str, v_start)); v_start := v_len + 1; else pipe row(substr(p_str, v_start, v_index - v_start)); v_start := v_index + 1; end if; end loop; return; end splitStr; end my_package;
3).测试
select * from table(my_package.splitStr('lisi,zhangshan,wangwu,xiaoxiao,haihai,tuotuo',','));
运行结果:
相关推荐
这个函数使用了 Oracle 的管道化函数(pipelined function)来返回拆分后的结果。函数内部使用了一个循环来拆分字符串,每次循环都会将拆分后的结果返回给调用者。 最后,我们可以使用这个函数来拆分字符串。例如,...
应用表函数可将数据转换分阶段处理,并省去中间结果的存储和缓冲表。 1. 用游标传递数据 利用游标 REF CURSOR 可将数据集(多行记录)传递到PL/SQL函数: SELECT * FROM TABLE (myfunction (CURSOR (SELECT * ...
- 管道化表函数必须使用`pipe row`语句将对象插入结果流,并且通常以空的`return`语句结束。 - 对于非管道化的函数,可以在函数内部扩展数组并填充数据,最后返回数组实例。 4. **优势和应用场景**: 返回表类型...
本文将详细介绍Oracle内置包的使用方法,包括它们的功能、调用方式以及示例应用。 1. **DBMS_UTILITY**: 这个包主要用于数据库的实用功能,如格式化SQL语句(UTL_FMT),获取数据库版本信息,以及执行PL/SQL块等。...
6. **Network Data Model (NDM)**: Oracle Spatial的NDM用于处理网络数据,如道路、管道或电力线路。它支持网络分析,例如找出最短路径、服务区域分析等。 7. **Topology**: Oracle Spatial支持拓扑规则,确保空间...
表函数和管道化表函数可以用于返回集合。这两种类型的函数在处理大量数据时非常有效,尤其是当结果集很大时。 ### 二、系统配置 除了编码实践之外,合理的系统配置也是提高 PL/SQL 性能的关键。例如,调整 Oracle ...
Oracle提供了一种特殊类型——Pipelined Table Function(管道表函数),它可以用于解决这类问题。本文档将详细介绍如何使用Pipelined Table Function来实现一个split函数,该函数可以将输入字符串根据给定的分隔符...
读者还能学到管道函数的学习与实战应用,以及如何巧妙地使用锁特性来避免程序的重复启动。 本书的作者团队由具有多年Oracle开发和管理实战经验的专家组成,他们分享了个人的经验和教训,并提供了分析和解决问题的...
4. Geocoding:对于非结构化的地址数据,Oracle 10g Spatial提供了地理编码功能,可以将这些地址转换为精确的经纬度坐标。 5. 索引改进:R树索引被广泛采用,取代了旧的四叉树索引,提升了空间查询的效率。 6. 新...
传统的Map-Reduce框架通常运行在独立的计算集群上,而Oracle数据库通过其独特的特性——**Pipeline Table Functions**(管道表函数)——提供了一种直接在数据库内部实现Map-Reduce的方式,从而实现了真正的“in-...
此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...
使用管道表函数来建立复杂的结果集 管道表函数允许在 PL/SQL 中创建和返回复杂的结果集,这对于处理大量数据和复杂的业务逻辑特别有用。 #### 28. 使用条件编译限制调试命令 条件编译是一种在编译时根据不同的...
DBMS_UTILITY包提供了一系列实用函数,如分析SQL语句(ANALYZE_STATEMENT)、格式化输出PL/SQL块(FORMAT_SOURCE)以及获取数据库版本信息(GET_VERSION)。这个包对于调试和优化PL/SQL代码非常有用。 二、DBMS_...
此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...
此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...
在本文中,我们将深入探讨如何使用PL/SQL创建Oracle函数,并介绍一些高级技术,如管道操作。 首先,创建Oracle函数的基本结构包括函数名、输入参数(如果有的话)、返回类型和函数体。以下是一个简单的示例: ```...
`DBMS_PIPE`包提供了在Oracle进程中创建和管理管道的能力,允许两个或多个Oracle进程之间进行数据交换。这种机制类似于操作系统中的管道功能,但它是在Oracle环境下实现的,并具有不同的内部处理方式。 #### 实现...
在Oracle Spatial中,你可以存储、查询、分析和可视化地理信息。以下是对Oracle8.1.6 Spatial编程的一些关键知识点: 1. **Spatial 数据类型**:Oracle Spatial引入了几何数据类型,如SDO_GEOMETRY,用于存储点、线...
SQL(结构化查询语言)是操作和查询数据库的标准语言,无论是Oracle还是其他数据库系统,掌握SQL都是必要的。Teradata则是一款大规模并行处理数据库,尤其适用于大数据处理和分析。而Unix操作系统以其稳定性和强大的...