`

ORACLE管道化表函数应用

阅读更多

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',','));

        运行结果:

  • 大小: 30.4 KB
分享到:
评论

相关推荐

    Oracle 中 table 函数的应用浅析

    应用表函数可将数据转换分阶段处理,并省去中间结果的存储和缓冲表。 1. 用游标传递数据 利用游标 REF CURSOR 可将数据集(多行记录)传递到PL/SQL函数: SELECT * FROM TABLE (myfunction (CURSOR (SELECT * ...

    剑破冰山 Oracle开发艺术.part2.rar

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    剑破冰山 Oracle开发艺术.part1.rar(共3part)

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    剑破冰山 Oracle开发艺术.part3.rar (共3part)

    此外还有大量案例:Where In List问题解析,数据库设计和大数据量处理、数据审核、号段选取应用、分析SQL执行计划的关注点、Oracle开发误区探索、提升PL/SQL开发性能漫谈、管道函数的学习与实战应用、巧用锁特性避免...

    Oracle 9i&10g编程艺术:深入数据库体系结构(全本)含脚本

    目录回到顶部↑第1章 开发成功的Oracle应用 1 1.1 我的方法 2 1.2 黑盒方法 4 1.3 开发数据库应用的正确(和不正确)方法 8 1.3.1 了解Oracle体系结构 8 1.3.2 理解并发控制 14 1.3.3 多版本 19 1.3.4 数据库...

    Oracle9iPL/SQL编程的经验小结

    管道函数的使用总结如下两点: 每当在查询里使用PL/SQL函数时,该查询将被序列化,即一个处理器只能运行一个查询实例,那么在这种情况下不可能使用并行查询(比如在数据仓库中要经常使用这项技术)。因此,为了使用...

    PLSQL高级编程资料

    10.1.2 函数应用和说明 10.1.3 应用举例 10.2 DBMS_PIPE 程序包 10.2.1 公有管道和私有管道 10.2.2 使用管道 10.2.3 DBMS_PIPE 包的函数 10.2.4 例程 10.3 DBMS_ALERT 与 DBMS_PIPE 的比较 第十一章 PL/SQL 和 JAVA ...

    PL/SQL编程经验小结开发者网络Oracle

    管道函数的使用总结如下两点: 每当在查询里使用PL/SQL函数时,该查询将被序列化,即一个处理器只能运行一个查询实例,那么在这种情况下不可能使用并行查询(比如在数据仓库中要经常使用这项技术)。因此,为了使用...

    Oracle编程艺术

    第 1章 开发成功的Oracle应用程序...................................................... 61 1.1 我的方法................................................................................ 63 3 / 976 1.2 ...

    Perl 实例精解(第三版).pdf

    对每个主题都使用了范例说明,从Perl变量、正则表达式,到编写报表、CGI脚本和网络应用,并对范例程序进行了解释。读者可以很容易地通过这些范例掌握Perl语言的语法。附录含有完整的函数和定义、命令行开关、特殊...

    PHP网络编程技术与实践 源码

    15.2 使用管道的形式发送邮件 15.3 使用phpmailer类发送邮件 15.4 基于Socket编写的程序 15.5 本章小结 第16章 视频音频播放模块 16.1 播放器的基础知识 16.1.1 Windows Media Player 16.1.2 RealPlayer 16.2 播放...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用global语句。而你要将该变量的作用范围限制在该函数之内,使用static语句。 $g_var = 1 ; // 全局范围 function test() { global $g_var; // 这样...

    疯狂JAVA讲义

    9.6.6 使用NumberFormat格式化数字 350 9.6.7 使用DateFormat格式化日期 352 9.7 本章小结 355 本章练习 355 第10章 异常处理 356 10.1 异常概述 357 10.2 异常处理机制 358 10.2.1 使用try...catch捕获异常 ...

    Java典型模块

    3.1.2 可变参数函数 3.1.3 增强版for循环 3.1.4 基本数据的拆、装箱操作(autoboxing和unboxing) 3.2 枚举 3.2.1 枚举的实现原理 3.2.2 枚举的简单应用 3.2.3 枚举的高级特性 3.3 反射 3.3.1 反射的基石——Class类...

Global site tag (gtag.js) - Google Analytics