隐式/动态游标的创建与使用

news/2024/5/21 12:05:06

目录

将 emp 数据表中部门 10 的员工工资增加 100 元,然后使用隐式游标的 %ROWCOUNT 属性输出涉及的员工数量

 动态游标的定义

声明游标变量

打开游标变量

检索游标变量

关闭游标变量

定义动态游标,输出 emp 中部门 10 的所有员工的工号和姓名


Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645

和显式游标不同,隐式游标是系统自动创建的

用于处理 DML 语句(例如 INSERT、UPDATE、DELETE 等指令)的执行结果或者 SELECT 查询返回的单行数据,

这时隐式游标是指向缓冲区的指针。

使用时不需要进行声明、打开和关闭,因此不需要诸如 OPEN、FETCH、CLOSE 这样的操作指令。

隐式游标也有前述介绍的 4 种属性,使用时需要在属性前面加上隐式游标的默认名称 SQL,因此隐式游标也叫 SQL 游标

将 emp 数据表中部门 10 的员工工资增加 100 元,然后使用隐式游标的 %ROWCOUNT 属性输出涉及的员工数量

分析:范例要实现的功能可以通过 UPDATE 语句实现,然后使用 %ROWCOUNT 给出所涉及的员工数量。

具体程序代码及运行结果如下图所示

显式游标在定义时与特定的查询绑定,其结构是不变的,反映的是在显式游标打开的时刻当时的状态,

此后如果再对数据库进行更新、删除或者插入,不会影响已经打开的游标。

而动态游标也称为游标变量,是一个指向多行查询结果集的指针,不与特定的查询绑定,可以在打开游标变量时定义查询,

如果打开,用户所做的修改、更新或者删除在动态游标中都会有反应

 动态游标的定义

TYPE 动态游标名称 IS REF CURSOR [RETURN 返回类型 ]

其中,返回类型是可选项

声明游标变量

变量名字 动态游标名称

使用前面定义的动态游标名称声明游标变量。

例如,下面两条语句分别定义了一个动态游标 emp_cursor,其返回类型是 emp 数据表的行记录类型,

然后使用所定义的动态游标声明了一个游标变量

TYPE emp_cursor IS REF CURSOR RETURN emp%ROWTYPE;
Var_cursor emp_cursor;

打开游标变量

和前面显式游标一样,使用之前要打开的游标,不过由于在动态游标定义的时候并没有对应的查询语句,

因此在打开游标变量的时候要同时指定游标变量所对应的查询语句,当执行打开游标操作时,

系统会执行对应的查询语句,将查询结果放入游标变量对应的缓冲区中。其对应语法如下所示

OPEN 游标变量 FOR < SELECT 语句 >

例如,游标变量对应查询语句如下所示

OPEN var_cursor FOR SELECT * FROM emp;

检索游标变量

和前面介绍的显式游标检索的方法一样,都是使用 FETCH...INTO...语句存储当前游标指向的记录值,并结合简单循环结构显示查询结果中的记录

关闭游标变量

游标变量使用完,应及时关闭以释放缓冲区空间

CLOSE 游标变量

定义动态游标,输出 emp 中部门 10 的所有员工的工号和姓名

分析:可以按照上面介绍的动态游标定义的方法,逐步实现要求的功能。

如上图所示,在声明部分定义了游标变量 var_cursor,在程序主体部分打开游标变量的时候与查询语句建立关联,

使用 FETCH...INTO...语句和 LOOP 循环结构显示符合条件的每一条记录,在循环结构中,使用 %NOTFOUND 属性判断,当查询结构使用完后退出循环


http://www.mrgr.cn/p/28773388

相关文章

uniCloud云函数概述---云对象

云对象是普通云函数的升级版,功能和云函数是一样的。它在大多数场景下替代了普通云函数。 云对象是对象化的云函数,比如一个文章云对象,它可以包括文章的创建,文章的删除,文章的编辑等功能。 (一句话描述云对象: 等同于PHP后端部份)一、创建云对象 打开项目,找到uniCl…

Docker Container (容器) 常见命令

Docker 容器的生命周期 什么是容器&#xff1f; 通俗地讲&#xff0c;容器是镜像的运行实体。镜像是静态的只读文件&#xff0c;而容器带有运行时需要的可写文件层&#xff0c;并且容器中的进程属于运行状态。即容器运行着真正的应用进程。容 器有初建、运行、停止、暂停和删除…

JSNeat: Recovering Variable Names for Minified Code with Usage Contexts

发表:ICSE,2019,德克萨斯大学达拉斯分校计算机科学系,Tien N. Nguyen团队(https://personal.utdallas.edu/~tien.n.nguyen/) 开源:https://github.com/trunghieu-tran/RecoverJSName-JSNeat 主要内容本文提出了一种基于信息检索(IR)的方法JSNEAT来恢复经过混淆的JS代码…

HarmonyOS 简易封装网络请求框架

设计思路网络请求框架的设计目标是简化 HTTP 请求的发送和响应处理过程。为了实现这一目标,我们定义了几个核心组件:IHttpRequest: 定义了发送 HTTP 请求的基本操作,如设置 URL、请求头、请求参数等。 IHttpListener: 定义了 HTTP 请求完成后的回调方法,用于处理请求的成功…

QOJ5717

好,好难。非常好题目,拜谢 Itst。不过如果我去考这场估计就哈哈了。\(k = 3\) 都能卡。 还是要避免一条路走到黑啊。懂得变通。\(k=1\) 是送的。 \(k=2\) 较为平凡,只需要将相对大的、相对小的各放一起。 \(k=3\) 不简单了。首先二分答案 \(mid\),经过 800 万年转换视角,钦…

运行程序时出现mschrt20.ocx未注册找不到控件问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个mschrt20.ocx文件(挑选合适的版本文…

libtorch模型预测环境配置说明

1、cuda环境 (1)更新nvidia显卡驱动 首先在NVIDIA官网下载与电脑显卡类型一致的显卡驱动,我的显卡是quadro P2000,下载对应的显卡驱动程序安装。 474.82-quadro-rtx-desktop-notebook-win10-win11-64bit-international-whql.exe (2)cuda的安装 显卡驱动安装完成后,NVIDI…

每日两题2

不同路径 class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m1, vector<int>(n1,0));//创建dp表dp[0][1] 1;//初始化//填表for(int i 1; i < m; i){for(int j 1; j < n; j){dp[i][j] dp[i-1][j] dp[i][j-1];}}ret…

支持标准OPS接口,通用型RK3568工控板上新!

HD-RK3568-OPS主板基于HD-RK3568-CORE 工业级核心板设计,搭载1.8GHz主频的高性能ARM处理器,适用于工业现场应用需求。主板支持标准OPS接口、支持前后HDMI双路输出,具有即插即用、操作简单的特点,亦适用于数字标牌、自助终端、教育一体机等应用场景。 ​ 主要功能包括: OP…

5-02. 创建 AudioMixer 实现音乐音效的控制和切换

创建 AudioMixer修改 AudioMixer 可以增加 Snapshots可以增加 Groups创建一个只有背景音乐的快照静音的快照暴露音量 选中 Music,然后右键 Music然后就能在 Exposed Parameters 看到暴露出来的变量可以改名为 MusicVolume用同样的方法暴露出 Ambient 并修改名字用同样的方法暴…

MBR40100PT-ASEMI肖特基二极管MBR40100PT

MBR40100PT-ASEMI肖特基二极管MBR40100PT编辑:ll MBR40100PT-ASEMI肖特基二极管MBR40100PT 型号:MBR40100PT 品牌:ASEMI 封装:TO-247 最大平均正向电流(IF):40A 最大循环峰值反向电压(VRRM):100V 最大正向电压(VF):0.88V 工作温度:-40C~170C 反向恢复时间:5ns 芯…

【大数据与云计算】虚拟机安装Linux

前言&#xff1a;使用Linux系统对大数据学习必不可少&#xff0c;本文主要介绍虚拟机安装linux的流程 文章目录 一、 下载VMware二、下载Linux三、安装Linux 一、 下载VMware 官网链接 下载VMware-player&#xff0c;一直下一步安装即可。 二、下载Linux 点击链接直接下载&…

全志平台增加adb和串口登录的账号密码验证

直接引用全志论坛的一篇文章,很完整了,当前验证R16平台可行。 链接【https://bbs.aw-ol.com/topic/598/faq-%E5%85%A8%E5%BF%97r329-tina%E4%B8%AD%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8adb-%E4%B8%B2%E5%8F%A3%E5%AF%86%E7%A0%81%E7%99%BB%E5%BD%95?_=1713338833551&l…

Unity Pro 2019 for Mac:专业级游戏引擎,助力创意无限延伸!

Unity Pro 2019是一款功能强大的游戏开发引擎&#xff0c;其特点主要体现在以下几个方面&#xff1a; 强大的渲染技术&#xff1a;Unity Pro 2019采用了新的渲染技术&#xff0c;包括脚本化渲染流水线&#xff0c;能够轻松自定义渲染管线&#xff0c;通过C#代码和材料材质&…

读《AI营销画布》步骤三 扩场景(八)

前言 扩场景写起来有点吃力和干巴&#xff0c;为了文章的连续性&#xff0c;还是写点。 扩场景实际上是需要考虑在第一步和第二步之后是否增加业务流程、节点和场景。在确定增加场景之前&#xff0c;我们需要确保的是第一二步的成功&#xff0c;而且模式是可以复制的。所以&…

Linux iowait详解

1、概述 Linux中,%iowait 过高可能是个问题,严重的时候,它能使服务停止, 但问题是,多高才算高? 什么时候应该担心呢? 本文将讨论 iowait 的含义、相关的统计数据、原理以及 iowait 的瓶颈问题。 2、什么是 iowait Linux 中的解释:Show the percentage of time that the…

Windows安装pocsuite3报错ModuleNotFoundError: No module named pkg_resources

升级pip setuptools wheel即可解决问题 python -m pip install --upgrade pip setuptools wheel

常见的排序算法——希尔排序(二)

本文记述了希尔排序采用另一个间隔序列的基本思想和参考实现,并在说明了算法的性能后用随机数据进行了验证。 ◆ 思想 在前一篇希尔排序文章中,用到了简单的间隔序列 1, 4, 13, 40, ... (h = 3*h + 1)。本文参考了《算法(第4版)》练习题 2.1.29,用到的间隔序列为 1, 5, 19…

uni-app实现分页--(2)分页加载,首页下拉触底加载更多

业务逻辑如下&#xff1a; api函数升级 定义分页参数类型 组件调用api传参

P4587 [FJOI2016] 神秘数 题解

题目链接:P4587 [FJOI2016] 神秘数 题解 先不考虑下标限制,考虑以下性质: 按 \(a_i\) 大小排序,考虑如果当前能得到的集合为 \([1,x]\),并且考虑可以组成它的集合为: \(S_i=\{a_1,a_2,a_3,...a_i\}\),记 \(sum_i=\sum\limits_{i=1}^{n} a_i\),那么考虑对于在 \(S_i\) 中…