oracle的管道函数

Oracle管道函数(Pipelined Table Function)
oracle管道函数

1、管道函数即是可以返回行集合(可以使嵌套表nested table 或数组 varray)的函数,我们可以像查询物理表一样查询它或者将其赋值给集合变量。

2、管道函数为并行执行,在普通的函数中使用dbms_output输出的信息,需要在服务器执行完整个函数后一次性的返回给客户端。如果需要在客户端

实时的输出函数执行过程中的一些信息,在oracle9i以后可以使用管道函数(pipeline function)。

3、关键字PIPELINED表明这是一个oracle管道函数,oracle管道函数的返回值类型必须为集合,在函数中,PIPE ROW语句被用来返回该集合的单个元素,函数以一个空的RETURN 语句结束,以表明它已经完成。

原文:https://blog.csdn.net/indexman/article/details/27580517

1.简单例子

 
  1. --PIPELINED 表示管道函数

  2. --PIPE ROW 返回该集合的单个元素

  3. --创建type类型 t_table

  4. create or replace type t_table is table of number

  5. --创建函数

  6. create or replace function f_pipe(s number)

  7. return t_table pipelined --返回t_table

  8. as

  9. v_number number;

  10. begin

  11. for i in 1..s loop

  12. v_number := i;

  13. pipe row(v_number);--返回集合单个的值

  14. end loop;

  15. return;

  16. end f_pipe;

  17. --测试函数

  18. select * from table(f_pipe(5))

 结果图

2.复杂一点的例子

 
  1. --创建一个表类型

  2. create or replace type obj_table as object

  3. (

  4. id int,

  5. name varchar2(50)

  6. )

  7. --创建返回多个表类型的类型

  8. create or replace type list_table is table of obj_table

  9. --创建函数

  10. create or replace function f_pipes(s number)

  11. return list_table pipelined --list_table返回类型

  12. as

  13. v_obj_table obj_table;

  14. begin

  15. for i in 1..s loop

  16. v_obj_table := obj_table(i,to_char(i*i));

  17. pipe row(v_obj_table);--返回obj_table类型的单列数据

  18. end loop;

  19. return;

  20. end f_pipes;

  21. --测试函数

  22. select * from table(f_pipes(5))

结果图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/66013.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

传统图像算法 - 运动目标检测之KNN运动背景分割算法

以下代码用OpenCV实现了视频中背景消除和提取的建模,涉及到KNN(K近邻算法),整体效果比较好,可以用来进行运动状态分析。 原理如下: 背景建模:在背景分割的开始阶段,建立背景模型。 …

【ChatGPT 指令大全】怎么使用ChatGPT来辅助学习英语

在当今全球化的社会中,英语已成为一门世界性的语言,掌握良好的英语技能对个人和职业发展至关重要。而借助人工智能的力量,ChatGPT为学习者提供了一个有价值的工具,可以在学习过程中提供即时的帮助和反馈。在本文中,我们…

力扣63.不同路径II(动态规划)

/*** author Limg* date 2022/08/09* 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。* 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。* 现在考虑网…

国产低功耗蓝牙HS6621CxC/6621Px系列支持Find My网络功能方案芯片

目录 什么是“Find My“?HS6621系列简介 什么是“Find My“? “Find My”是苹果公司于19年前推出的针对失物追踪,Find My iPhone(查找我的iPhone)和Find My Friends(查找朋友)的结合体应用。为…

oracle容灾备份怎么样Oracle容灾备份

随着科学技术的发展和业务的增长,数据安全问题越来越突出。为了保证数据的完整性、易用性和保密性,公司需要采取一系列措施来防止内容丢失的风险。  Oracle是一个关系数据库管理系统(RDBMS),OracleCorporation是由美国软件公司开发和维护的。该系统功能…

网络编程——数据包的组装和拆解

数据包的组装和拆解 一、数据包在各个层之间的传输 二、各个层的封包格式 1、链路层封包格式 -------------------------------------------------------------------------------------------------------------------------------------- | 目标MAC地址(6字节&a…

干货分享|Elsevier投稿进度查询功能正式上线,随时获取投稿状态!

想必广大科研学者们都经历过每天登录系统查看投稿进度的煎熬过程,为了方便广大科研人随时获取投稿状态,2023年8月,Elsevier【微信端投稿进度查询功能】正式上线! 无论你是通讯作者还是共同作者,只需一次查询&#xff…

前端先行模拟接口(mock+expres+json)

目录 mock模拟数据:data/static.js 路由:index.js 服务器:server.js yarn /node 启动服务器:yarn start 客户端:修改代理路径(修改设置后都要重启才生效) 示例 后端框架express构建服务器 前端发起请求 静态数…

ElastAlert通过飞书机器人发送报警通知

前言 公司采用ELK架构搜集业务系统的运行日志,以前开发人员只有在业务出现问题的时候,才会去kibana上进行日志搜索操作,每次都是被用户告知系统出问题了,这简直是被啪啪打脸~ 于是痛定思痛,决定主动出击,…

探索泛型与数据结构:解锁高效编程之道

文章目录 引言第一部分:了解泛型1.1 为什么使用泛型1.2 使用泛型的好处 第二部分:泛型的使用场景2.1 类的泛型2.2 方法的泛型2.3 接口的泛型 第三部分:泛型通配符3.1 通配符3.2 通配符的受限泛型 第四部分:数据结构和泛型的应用4.…

Jenkins 中 shell 脚本执行失败却不自行退出

Jenkins 中 执行 shell 脚本时,有时候 shell 执行失败了,或者判断结果是错误的,但是 Jenkins 执行完成后确提示成功 success 。 此时,可以通过条件判断来解决这个问题,让 Jenkins 强制退出并提示执行失败 failed 。 …

40% Ubuntu 用户面临着新特权提升漏洞风险

导读Wiz 的研究人员发现,最近被引入 Ubuntu 内核的两个 Linux 漏洞,可能会在大量设备上为非特权本地用户提升权限。这两个漏洞被追踪为 CVE-2023-32629 和 CVE-2023-2640,预计影响了大约 40% 的 Ubuntu 用户。 根据介绍,其中 CVE…

Flutter 让软键盘不再自动弹起

1、问题说明: 在开发中,经常遇到这种事,一个页面有输入框,点击输入框后,会弹起软键盘,同时输入框会聚焦,手动收起软键盘后,点击另一个按钮前往下一个页面或者显示一个弹窗&#xff0…

FreeRTOS(任务管理的创建、删除、挂起、恢复)

目录 一、任务的基本概念 二、任务状态的概念 1、Running—运行态: 2、Ready—就绪态 3、Blocked—阻塞态 4、Suspended—挂起态 三、任务状态的切换 四、系统启动 1、vTaskStartScheduler()函数 1.1 作用 1.2 启动函数介绍 2、空闲任务 2.1 空闲任务的作…

Java密码学

密码学 1.1 密码学基本概念 密码在我们的生活中有着重要的作用,那么密码究竟来自何方,为何会产生呢? 密码学是网络安全、信息安全、区块链等产品的基础,常见的非对称加密、对称加密、散列函数等,都属于密码学范畴。…

ISC2023奇富科技与360智脑升级战略合作,加速完善金融行业大模型

北京时间8月9日,ISC2023第十一届互联网安全大会上,奇富科技宣布与360智脑达成在大模型方向与落地应用等多个层面的战略合作。通过奇富GPT与360智脑的算法、算力、数据融合,双方将协同优化奇富GPT,扩大其在已有业务中的应用场景&am…

【云原生】Docker中容器管理常用所有命令

1.docker 容器创建流程 2.容器运行本质 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 创建容器基本选项:--name:为容器命名 -i:交互式创建容器 -d:后台创建容器 -t:为容器分配伪终端 Docker 容器存在的意义就是为…

一种水文水利行业满管非满管双声道流量计安装调试

供电电源 用户应该特别注意:若是交流(AC220V)供电的主机插入直流电源,或者直流(DC24V)供电的主机接入AC220V电源,就会把流量计烧毁。 普通主机(包括固定式主机、盘装式主机&#x…

实现静态资源访问的几种方法

什么是静态资源? 静态资源是指在服务器端存储的不会变化的文件,如HTML、CSS、JavaScript、图片、音频、视频等文件。这些文件一般不包含动态内容,每次请求时返回的内容都是固定的。 为什么要使用静态资源? 提升网站性能&#xf…

Django实现音乐网站 ⑻

使用Python Django框架制作一个音乐网站, 本篇主要是后台对单曲原有功能的基础上进行部分功能实现和显示优化。 目录 新增编辑 歌手下拉显示修改 设置歌曲时长 安装eyed3库 获取mp3时长 歌曲时长字段修改 重写save方法 增加歌手单曲数量 查询歌手单曲数量 …