当前位置: 首页 > news >正文

pl/sql函数如何返回多行数据?在线等......

​编辑csm8109022010-01-27 09:59:18

这个问题我以前问过类似的,但一直没得到如意的答案!在oracle 里soctt的用户下的emp表,比如写一个函数,传入的参数为部门编号,然后返回所有该部门人员信息的函数。要用到游标,且要封装信息,该如何写?且能在pl/sql developer里能调试的,谢谢。

给本帖投票

88211打赏收藏1

 分享

 转发到动态举报

 写回复

如何按时间分组,并取最大值啊?>>

11 条回复

 切换为时间正序

请发表友善的回复…

发表回复

huangyunzeng2008 2010-01-28

将返回类型定义为一个table或者是一个cursor

csm810902 2010-01-27

cursor不是游标类型吗?不能写return cursor? c_cursor cursor这样申明一个游标类型的实例c_cursor 不是吗?我是这样理解的

suiziguo 2010-01-27

SYS_REFCURSOR是ORACLE内置ref cursor类型。
而cursor,只是一个关键字。

csm810902 2010-01-27

对了,我把函数改成这样会报错:
create or replace function func_emp_dept(v_deptno IN emp.deptno%TYPE)
return cursor IS

c_cursor cursor;
BEGIN
OPEN c_cursor FOR
SELECT * FROM emp WHERE deptno = v_deptno;
RETURN c_cursor;
END;
说必须申明表标CURSOR,这怎么理解?

csm810902 2010-01-27

ding

csm810902 2010-01-27

嗯,搞定,谢谢你们

suiziguo 2010-01-27

函数在PL/SQL里调试也一样。以下是SQLPLUS里调试:

SQL> CREATE OR REPLACE FUNCTION func_emp_dept
2 (pi_deptno IN emp.deptno%TYPE)
3 RETURN SYS_REFCURSOR
4 IS
5 po_result SYS_REFCURSOR;
6 BEGIN
7 OPEN po_result FOR
8 SELECT * FROM emp WHERE deptno=pi_deptno;
9 RETURN po_result;
10 END;
11 /

函数已创建。

SQL> select func_emp_dept(10) from dual;

FUNC_EMP_DEPT(10)
--------------------
CURSOR STATEMENT : 1

CURSOR STATEMENT : 1

EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
DEPTNO
----------
7782 CLARK MANAGER 7839 09-6月 -81 2450
10

7839 KING PRESIDENT 17-11月-81 5000
10

7934 MILLER CLERK 7782 23-1月 -82 1300
10



SQL>

suiziguo 2010-01-27

pl/sql测试窗,下面有所有参数(包括IN and OUT)。

在测试窗运行过程后,下面的参数栏里有个变量为po_result的值一栏里是<Cursor>
点击其右边的...按钮,就可以在新窗口里看见你想要的结果集。

csm810902 2010-01-27

suiziguo你好,存储过程在pl/sql developer一般是传入参数调试,然后在数据库里看结果,这里执行过程后,如何在pl/sql developer上看结果(这里是输出10部门的结果)?写函数还真不知道写呢

suiziguo 2010-01-27

SQL> create or replace procedure emp_dept
2 (pi_deptno IN emp.deptno%TYPE,
3 po_result OUT SYS_REFCURSOR)
4 IS
5 begin
6 OPEN po_result FOR
7 SELECT * FROM emp WHERE deptno=pi_deptno;
8 end ;
9 /

过程已创建。

SQL> var r_cur refcursor
SQL> exec emp_dept(10,:r_cur);

PL/SQL 过程已成功完成。

SQL> print :r_cur

EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- -------------- ---------- ----------
DEPTNO
----------
7782 CLARK MANAGER 7839 09-6月 -81 2450
10

7839 KING PRESIDENT 17-11月-81 5000
10

7934 MILLER CLERK 7782 23-1月 -82 1300
10


SQL>



pl/sql developer里调试,单独查看游标结果集。

oraclemch 2010-01-27

 回复

用游标即可:
 

 
  1. Create or REPLACE FUNCTION getCursorList(

  2. P_USER_ID_I IN VARCHAR2 --接收输入参数

  3. )

  4. RETURN SYS_REFCURSOR

  5. AS

  6. P_RESULT_SET_O SYS_REFCURSOR; --返回游标

  7. X_SQL VARCHAR2(200);

  8. BEGIN

  9. X_SQL :='select user_id,user_name,email from user_mst where user_id like ''%' || P_USER_ID_I ||'%'''; --生成SQL语句

  10. OPEN P_RESULT_SET_O FOR X_SQL;

  11. RETURN P_RESULT_SET_O; --返回游标

  12. END getCursorList;

     

相关文章:

pl/sql函数如何返回多行数据?在线等......

​编辑csm8109022010-01-27 09:59:18 这个问题我以前问过类似的&#xff0c;但一直没得到如意的答案&#xff01;在oracle 里soctt的用户下的emp表&#xff0c;比如写一个函数&#xff0c;传入的参数为部门编号&#xff0c;然后返回所有该部门人员信息的函数。要用到游标&…...

Ubuntu Find命令详解

一、Find命令简介 Ubuntu的Find命令是一种常用的终端指令&#xff0c;用于在文件系统中查找符合条件的文件和目录。该命令的语法格式如下&#xff1a; find [PATH] [OPTION] [EXPRESSION]其中&#xff0c;PATH表示待查找的目录&#xff0c;OPTION为选项参数&#xff0c;EXPRES…...

ADS Momentum学习笔记

ADS Momentum的简介 ADS Layout界面仿真采用的方法主要是Momentum&#xff08;矩量法&#xff09;。 Momentum的特点 Momentum是高级设计系统&#xff08;ADS&#xff09;的重要组成部分&#xff0c;它提供了设计现代通信系统的电磁仿真。它可以用来计算一般平面电路的S参数…...

解决Vue3 使用Element-Plus导航刷新active高亮消失

解决Vue3 使用Element-Plus导航刷新后active高亮消失的问题 启用路由模式会在激活导航时以 index 作为 path 进行路由跳转 使用 default-active 来设置加载时的激活项。 接下来打印一下选中项index和index路径&#xff0c; 刷新也是没有任何问题的&#xff0c;active不会消失…...

K8S系列文章之 一键部署K8S环境

部署的原理是基于自动化部署工具 Ansible 实现的&#xff0c;需要提前安装Ansible 并配置下主机节点环境 1. 安装 Ansible 首先ansible基于python2.X 环境&#xff0c;默认centos都已经安装好了python2环境 // 最好更新下库 // yum update yum install -y epel-release yum i…...

Spring Boot、Spring Cloud、Spring Alibaba 版本对照关系及稳定兼容版本

Spring Boot、Spring Cloud、Spring Alibaba 版本对照关系及稳定兼容版本 引言 在 Java 生态系统中&#xff0c;Spring Boot、Spring Cloud 和 Spring Alibaba 是非常流行的框架&#xff0c;它们提供了丰富的功能和优雅的解决方案。然而&#xff0c;随着不断的发展和更新&…...

虫情监测仪介绍—技术原理、功能优势是什么?

KH-CQPest虫情监测仪是做好虫情监测的重要设备&#xff0c;利用虫情监测仪能够对农业大田、智慧温室、林业等场景的害虫分布情况及害虫种类进行监测&#xff0c;协助人们制定合理的防治措施。 1.技术原理&#xff1a; KH-CQPest虫情监测仪采用光学诱虫原理&#xff0c;配合传感…...

HTML5 Canvas和Svg:哪个简单且好用?

HTML5 Canvas 和 SVG 都是基于标准的 HTML5 技术&#xff0c;可用于创建令人惊叹的图形和视觉体验。 首先&#xff0c;让我们花几句话介绍HTML5 Canvas和SVG。 什么是Canvas? Canvas&#xff08;通过 标签使用&#xff09;是一个 HTML 元素&#xff0c;用于在用户计算机屏幕…...

ChatGPT在社交媒体聊天和评论分析中的应用如何?

ChatGPT在社交媒体聊天和评论分析中具有广泛的应用前景&#xff0c;可以帮助企业、个人和社会从多个角度更好地理解用户观点、趋势和情感。以下是详细的讨论&#xff1a; **1. 舆情分析与趋势预测&#xff1a;** ChatGPT可以用于分析社交媒体上的评论、帖子和消息&#xff0c;…...

DoIP学习笔记系列:(四)用CAPL脚本读取DID的关键点

文章目录 1. 如何在CAPL中读取DID?1.1 避坑如何新建CAPL工程,在此不再赘述,本章主要分享一下如何在CAPL中调用DoIP接口、diag接口进行DoIP和诊断的测试。 1. 如何在CAPL中读取DID? 通常在实际项目中,会有很多DID,各种版本号、各种观测量,如果手动点,显然很麻烦,如果要…...

chrome插件开发实例06-定制自己的Chrome DevTools调试工具

目录 Chrome DevTools 调试工具 演示 ​编辑 源码 devtools.html devtools.js panel.html panel.js...

安卓读取,添加,更新,删除联系人,读取短信

目录 读取联系人 添加联系人 更新联系人 删除联系人 读取短信 读取联系人 安卓可以通过contentResolver来读取联系人表&#xff0c;联系人表的Uri信息是&#xff1a;content://com.android.contacts/data/phones 从而输出联系人信息&#xff0c; 需要相关权限&#xff1a…...

Practices6|69. x 的平方根、(哈希表)205. 同构字符串、(哈希表)1002. 查找共用字符

69. x 的平方根 1.题目&#xff1a; 给你一个非负整数 x &#xff0c;计算并返回 x 的 算术平方根 。 由于返回类型是整数&#xff0c;结果只保留 整数部分 &#xff0c;小数部分将被 舍去 。 注意&#xff1a;不允许使用任何内置指数函数和算符&#xff0c;例如 pow(x, 0.…...

Qt扫盲-Model/View入门

Model/View 编程入门 一、概述二、介绍1. 标准部件2. Model/View 控件3. Model/View控件概述4. 在表格单和 model 之间使用适配器 Adapters 三、 简单的 model / view 应用程序示例1. 一个只读表2. 使用role扩展只读示例3. 表格单元中的时钟4. 为列和行设置标题5. 最小编辑示例…...

关于win11 debian wsl 子系统安装启动docker一直starting,无法启动

首先我先说明&#xff0c;我的步骤都是按照官网步骤来的 通过官网的操作步骤 通过测试命令 sudo docker run hello-world得到下面的命令&#xff0c;我们通过启动命令 sudo service docker start 执行结果如下图 也就是说无法启动&#xff0c;一直显示在启动中 遇到这种情况…...

Nginx反向代理配置+负载均衡集群部署

文章目录 负载均衡反向代理基础环境部署&#xff1a;什么是代理实验环境图流量过程 环境部署准备两台Web服务器安装Nginx准备页面内容添加主机名 代理服务器配置 修改windos hosts文件测试&#xff1a;终端浏览器 负载均衡反向代理基础环境部署&#xff1a; 什么是代理 正向代…...

设计模式行为型——迭代器模式

什么是迭代器模式 迭代器模式&#xff08;Iterator Pattern&#xff09;属于行为型模式&#xff0c;其提供一种方法顺序访问一个聚合对象中的各种元素&#xff0c;而又不暴露该对象的内部表示&#xff0c;即不需要知道集合对象的底层表示。编程环境中非常常用的设计模式。 迭代…...

K8s持久化存储(nfs网络存储)

数据卷 emptydir&#xff0c;是本地存储&#xff0c;pod重启&#xff0c;数据就不存在了&#xff0c;需要对数据持久化存储 1.nfs&#xff0c;网络存储 &#xff0c;pod重启&#xff0c;数据还存在的...

常规VUE项目优化实践,跟着做就对了!

总结&#xff1a; 主要优化方式&#xff1a; imagemin优化打包大小&#xff08;96M->50M&#xff09;&#xff0c;但是以打包速度为代价&#xff0c;通过在构建过程中压缩图片来实现&#xff0c;可根据需求开启。字体压缩&#xff1a;目前项目内引用为思源字体&#xff0c…...

PLL 的 verilog 实现

锁相环&#xff08;PLL&#xff09;是一种常用的频率、相位追踪算法&#xff0c;在信号解调、交流并网等领域有着广泛的应用。本文对全数字锁相环的原理进行介绍&#xff0c;随后给出 verilog 实现及仿真。 PLL 锁相原理 锁相环结构如下图所示&#xff0c;主要由鉴相器、环路滤…...

深度学习概率分布与核心运算 —— 概率论的工具箱(八)

1. 定位导航 上一篇回答了"为什么需要概率"。本篇开始构建概率论的基本工具箱——这些工具是理解后续所有内容(损失函数、贝叶斯推断、生成模型、信息论)的数学基础。 本篇覆盖六大核心概念:随机变量与概率分布(PMF/PDF)、边缘概率、条件概率、链式法则、独立…...

为什么 Transformer 这么强?——对比 CNN 和 RNN(Version B)

为什么 Transformer 这么强&#xff1f;——对比 CNN 和 RNN&#xff08;Version B&#xff09; &#x1f4da; 《从零到一造大脑&#xff1a;AI架构入门之旅》专栏 专栏定位&#xff1a;面向中学生、大学生和 AI 初学者的科普专栏&#xff0c;用大白话和生活化比喻带你从零理解…...

多平台直链获取:突破网盘下载限制的开源解决方案

多平台直链获取&#xff1a;突破网盘下载限制的开源解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 …...

如何快速掌握Unity资产编辑:面向开发者的完整教程

如何快速掌握Unity资产编辑&#xff1a;面向开发者的完整教程 【免费下载链接】UABEA c# uabe for newer versions of unity 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA UABEA是一款专业的Unity Asset Bundle编辑器&#xff0c;专为游戏开发者和模组制作者设计…...

AI 模型推理延迟优化方案

AI模型推理延迟优化方案&#xff1a;提升效率的关键路径 在人工智能技术快速发展的今天&#xff0c;AI模型的推理延迟已成为影响用户体验和系统性能的关键因素。无论是实时语音识别、自动驾驶&#xff0c;还是在线推荐系统&#xff0c;高延迟都会导致响应缓慢&#xff0c;甚至…...

拆解 OpenHands(8)--- CodeActAgent

在 OpenHands 智能框架的生态中&#xff0c;CodeActAgent 占据着核心地位&#xff0c;它是基于 CodeAct 理念构建的核心代理模块。其设计初衷极具巧思&#xff1a;将各类复杂任务统一转化为 “代码执行” 的形式来完成&#xff0c;同时兼顾自然语言对话的交互特性。这一设计既保…...

【GUI-Agent】阶跃星辰 GUI-MCP 解读---()---执行层

基础示例&#xff1a;单工作表 Excel 转 TXT 以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤&#xff1a; 1. 加载并读取Excel文件 from spire.xls import * from spire.xls.common import * workbook Workbook() workbook.LoadFromFile("示例.xlsx"…...

哥伦比亚AI中心四项教师研究奖

机器学习 哥伦比亚人工智能技术中心宣布四项新教师研究奖 第三轮年度奖项表彰探索人工智能领域一系列挑战的创新研究。 作者&#xff1a;Staff writer 2023年7月25日 4分钟阅读 哥伦比亚工程学院与某机构宣布了哥伦比亚人工智能技术中心&#xff08;CAIT&#xff09;的四项…...

后软件时代:当交互成为本能

从显式操作到隐式协同,从界面到无界 范式转移:从“使用工具”到“与伙伴共存” 当软件不再以独立形态存在,交互的本质将从主动操作变为自然协同。这不仅是技术变革,更是人类与机器关系的根本重构。 交互层级的演进 第一层:意图直连 过去:打开App → 点击按钮 → 输入…...

利用快马平台快速构建c++学生成绩管理系统原型

最近在尝试用C快速验证一个学生成绩管理系统的原型设计&#xff0c;发现用InsCode(快马)平台可以省去很多环境配置的麻烦。这里记录下实现过程和一些实用技巧&#xff0c;特别适合需要快速验证算法思路的场景。 数据结构设计 首先需要确定如何存储学生信息。我选择用结构体来定…...