Oracle游标使用参考语句实例解析
更新时间:2020年12月8日 11:31 点击:1655
游标是从表中检索出结果集,从中每次指向一条记录进行交互的机制。
作用
- 指定结果集中特定行的位置。
- 基于当前的结果集位置检索一行或连续的几行。
- 在结果集的当前位置修改行中的数据。
- 对其他用户所做的数据更改定义不同的敏感性级别。
- 可以以编程的方式访问数据库。
一个简单实用:
Declare -- 声明游标 Cursor Mycur Is Select * From Emp; Empinfo Emp%Rowtype; Cou Number; Begin -- 游标操作使用循环,但是在操作之前必须先将游标打开 For Empinfo In Mycur Loop Cou := Mycur%Rowcount; Dbms_Output.Put_Line('行号:' || Cou || ' 雇员编号:' || Empinfo.Empno || ' 雇员姓名:' || Empinfo.Ename); End Loop; End;
循环取出数据的两种写法:
Declare -- 声明游标 Cursor Mycur Is Select * From Emp; -- List (EmpPo) Empinfo Emp%Rowtype; Cou Number; Begin -- 游标操作使用循环,但是在操作之前必须先将游标打开 If Mycur%Isopen Then Null; Else Open Mycur; End If; -- 使游标向下一行 Fetch Mycur Into Empinfo; -- 判断此行是否有数据被发现 While (Mycur%Found) Loop Cou := Mycur%Rowcount; Dbms_Output.Put_Line('行号:' || Cou || ' 雇员编号:' || Empinfo.Empno || ' 雇员姓名:' || Empinfo.Ename); -- 修改游标,继续向下 Fetch Mycur Into Empinfo; End Loop; End;
第二种写法:
Declare -- 声明游标 Cursor Mycur Is Select * From Emp; Empinfo Emp%Rowtype; Cou Number; Begin -- 游标操作使用循环,但是在操作之前必须先将游标打开 If Mycur%Isopen Then Null; Else Open Mycur; End If; Loop -- 使游标向下一行 Fetch Mycur Into Empinfo; Exit When Mycur%Notfound; Cou := Mycur%Rowcount; Dbms_Output.Put_Line('行号:' || Cou || ' 雇员编号:' || Empinfo.Empno || ' 雇员姓名:' || Empinfo.Ename); End Loop; End;
在存储过程中使用游标
Create Or Replace Procedure Myproc(Oi_Return Out Integer) Is Cursor Mycur Is Select * From Emp_0915; Empinfo Emp_0915%Rowtype; Cou Number; Exc_Return Exception; -- 程序中间返回自定义异常 Begin If Mycur%Isopen Then Null; Else Open Mycur; End If; Loop Fetch Mycur Into Empinfo; Exit When Mycur%Notfound; Cou := Mycur%Rowcount; Dbms_Output.Put_Line(Cou || '开始更新...'); Update Emp_0915 t Set t.Sal = t.Sal + 1 Where t.Empno = Empinfo.Empno; Dbms_Output.Put_Line(Cou || '更新结束...'); End Loop; Commit; Oi_Return := 1; Exception When Exc_Return Then Rollback; Oi_Return := 0; End;
在oracle中测试:
Declare Re Integer; Begin Myproc(Re); If Re = 1 Then Dbms_Output.Put_Line(Re || ':执行结束。。。'); Else Dbms_Output.Put_Line(Re || ':执行错误_______'); End If; End;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持猪先飞。
相关文章
mysql中获取一天、一周、一月时间数据的各种sql语句写法
创建表:复制代码 代码如下:create table if not exists t( id int, addTime datetime default '0000-00-00 00:00:00′)添加两条初始数据:insert t values(1, '2012-07-12 21:00:00′);insert t values(2, '2012-07...2014-05-31- 这篇文章主要介绍了Oracle使用like查询时对下划线的处理方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-16
- 这篇文章主要介绍了C#条件语句、循环语句(if、while)的用法,学习c#的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16
- 这篇文章主要给大家介绍了关于C#连接Oracle数据库字符串(引入DLL)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-25
- 这篇文章主要介绍了c# 循环语句的使用方法,文中代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-06-25
Mysql 原生语句中save or update 的写法汇总
背景  在平常的开发中,经常碰到这种更新数据的场景:先判断某一数据在库表中是否存在,存在则update,不存在则insert。 如果使用Hibernate,它自带saverOrUpdate方法,用起来很方便,但如使用原生sql语句呢?  ...2015-03-15- 这篇文章主要给大家介绍了关于如何利用JavaScript编写更好的条件语句的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-08-10
- 这篇文章主要介绍了Oracle 实现将查询结果保存到文本txt中的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-07
- 下面小编就为大家带来一篇jquery if条件语句的写法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-05-20
C#实现String字符串转化为SQL语句中的In后接的参数详解
在本篇文章中小编给大家分享的是一篇关于C#实现String字符串转化为SQL语句中的In后接的实例内容和代码,需要的朋友们参考下。...2020-06-25- 今天给大家带来的是关于Python基础的相关知识,文章围绕着Python循环语句展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下...2021-06-15
- 今天教各位小伙伴怎么用Python连接oracle,文中附带非常详细的图文示例,对正在学习的小伙伴们很有帮助哟,需要的朋友可以参考下...2021-05-18
oracle实现动态查询前一天早八点到当天早八点的数据功能示例
这篇文章主要介绍了oracle实现动态查询前一天早八点到当天早八点的数据功能,涉及Oracle针对日期时间的运算与查询相关操作技巧,需要的朋友可以参考下...2020-07-11- 这篇文章主要介绍了python如何从Oracle读取数据生成图表,帮助大家更好的利用python处理数据,感兴趣的朋友可以了解下...2020-10-14
Oracle 两个逗号分割的字符串,获取交集、差集(sql实现过程解析)
这篇文章主要介绍了Oracle 两个逗号分割的字符串,获取交集、差集的sql实现过程解析,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11- 这篇文章主要介绍了linux服务器下oracle开机自启动设置,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
- 这篇文章主要介绍了oracle按天,周,月,季度,年查询排序功能,本文给出了sql语句,每种方法给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
- 这篇文章主要介绍了关于Nginx中if语句的判断条件与多条件判断的相关资料,文中给出了详细的示例代码,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。...2017-07-06
- 可以采用exec方法 declare @tempStr varchar(350) select @tempStr='Update weekcount set [' convert(varchar,@week) ']=[' convert(varchar,@week) '] 1 where us...2016-11-25