oracle存储过程—游标

server/2024/9/24 22:22:52/

游标 CURSOR
--隐式游标 select into--只能返回一行数据
--显示游标 :处理多行数据,一行一行去处理数据的循环

语法1:

DECLAREcursor c_emp ISselect ename,sal from emp;---把查询到的emp表的数据放到游标c_emp中v_row c_emp%rowtype; --引用数据库中的一行(所有字段)作为数据类型
BEGINopen c_emp;--打开游标loop --循环fetch c_emp into v_row;--提取一行数据到变量exit when c_emp%notfound;--退出循环--处理这行数据dbms_output.put_line(rpad(v_row.ename,10,' ') || c_row.sal);end loop;--结束循环close c_emp;--关闭游标
end;

简写:for循环不需要打开关闭游标、fetch、exit

DECLAREcursor c_emp ISselect ename,sal from emp;---把查询到的emp表的数据放到游标c_emp中
BEGINfor x in  c_emp loop --循环--想怎么处理怎么处理dbms_output.put_line(rpad(x.ename,10,' ') || x.sal);end loop;--结束循环
end;

一些例子:

--想怎么处理怎么处理的例子
--把取出来的数据放到一张新表里面
DECLAREcursor c_emp ISselect ename,sal from emp;---把查询到的emp表的数据放到游标c_emp中
BEGINfor x in  c_emp loop --循环insert into emp_2017(ename,sal) values (x.ename,x.sal);end loop;--结束循环
end;--如果薪水<1200,奖金+1000;[1200,2800)奖金+2000;>=2800奖金+3000
DECLAREcursor c_emp ISselect ename,sal from emp;---把查询到的emp表的数据放到游标c_emp中v_empno number;v_sal number;
BEGINfor x in  c_emp loop --循环v_empno:=x.empno;v_sal:=x.sal;if v_sal <1200then update emp set comm=nvl(comm,0)+1000 where empno =v_empno;--更新表数据COMMIT;--提交代码elsif v_sal >=1200 and v_sal <2800then update emp set comm=nvl(comm,0) where empno =v_empno;COMMIT;--提交代码elsif v_sal>=2800then update emp set comm=vl(comm,0)+3000 where empno =v_empno;COMMIT;--提交代码end if;end loop;--结束循环
end;


http://www.ppmy.cn/server/11010.html

相关文章

K-均值聚类算法及其优缺点

K-均值聚类算法是一种常见的无监督学习算法&#xff0c;用于将数据集划分为K个不同的类别。该算法的目标是最小化数据点与其所属聚类中心之间的平均平方距离。下面分别介绍K-均值聚类算法的步骤和其优缺点。 K-均值聚类算法的步骤如下&#xff1a; 初始化K个聚类中心&#xf…

如何在企业微信中更换新的企业主体

企业微信变更主体有什么作用&#xff1f; 做过企业运营的小伙伴都知道&#xff0c;很多时候经常会遇到现有的企业需要注销&#xff0c;切换成新的企业进行经营的情况&#xff0c;但是原来企业申请的企业微信上面却积累了很多客户&#xff0c;肯定不能直接丢弃&#xff0c;所以这…

海外媒体广告投放 - 大舍传媒助力企业迈向新台阶,实现精准投放

一、为何选择海外媒体广告投放 随着全球化进程的不断推进&#xff0c;越来越多的企业开始将目光投向国际市场。海外媒体广告投放作为一种有效的宣传手段&#xff0c;可以帮助企业在全球范围内提高品牌知名度和影响力&#xff0c;吸引潜在客户&#xff0c;促进产品销售。 二、…

Linux动静态库

Q&#xff1a;为什么要学习动静态库&#xff1f; 动静态库可以在不通过源代码情况下&#xff0c;就能够直接运行程序&#xff0c;库的本质就是对一堆的.o文件&#xff08;源文件通过预处理、编译、汇编生成的&#xff09;打包在一起。 Q&#xff1a;我们有没有用过库呢&#x…

探索深度与广度的平衡:迭代加深深度优先搜索技术解析

探索深度与广度的平衡&#xff1a;迭代加深深度优先搜索技术解析 迭代加深深度优先搜索&#xff08;IDDFS&#xff09;的基本原理伪代码C语言实现讨论结论 迭代加深&#xff08;Iterative Deepening Depth-First Search, IDDFS&#xff09;是一种用于解决搜索问题的方法&#x…

msvcr120.dll文件缺失的相关修复方法分享,有一键修复msvcr120.dll的方式

关于msvcr120.dll文件缺失的缺失&#xff0c;其实网上已经有很多的方法了&#xff0c;但是有很多事不靠谱的&#xff0c;或者是讲得不太清楚的&#xff0c;所以小编觉还是有需要来给大家详细的讲解一下msvcr120.dll文件缺失的相关修复方法&#xff0c;好了废话不多说&#xff0…

设计模式之状态模式(下)

3&#xff09;共享状态 1.概述 在某些情况下&#xff0c;多个环境对象可能需要共享同一个状态&#xff0c;如果希望在系统中实现多个环境对象共享一个或多个状态对象&#xff0c;那么需要将这些状态对象定义为环境类的静态成员对象。 2.案例 背景&#xff1a;要求两个开关对…

java练习,电影信息系统

package comf.sxt;import java.util.Scanner;public class Test {public static void main(String[] args) {// TODO Auto-generated method stubMovie[] movies=new Movie[4];movies[0] =new Movie(1,"开着车",39,9.7,"Tom","xx","11万人想…