文档章节

oracle 游标 cursor

kshine
 kshine
发布于 2015/05/19 16:07
字数 352
阅读 3
收藏 0

PL/SQL 会为程序中执行的每一条UPDATE,DELETE,INSERT 语句使用一个隐式游标。

隐式游标有SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT三个属性,这些属性用于控制程序流程或者了解程序的状态。

当运行DML语句时,PL/SQL打开一个内建游标并处理结果,游标是维护查询结果的内存中的一个区域,游标在运行DML语句时打开,完成后关闭。隐式游标只使用SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT三个属性。SQL%FOUND,SQL%NOTFOUND是布尔值,SQL%ROWCOUNT是整数值。

1. SQL%FOUND和SQL%NOTFOUND
  在执行任何DML语句前SQL%FOUND和SQL%NOTFOUND的值都是NULL,在执行DML语句后,SQL%FOUND的属性值将是:
a. TRUE :INSERT
b. TRUE :DELETE和UPDATE,至少有一行被DELETE或UPDATE.
c. TRUE :SELECT INTO至少返回一行

当SQL%FOUND为TRUE时,SQL%NOTFOUND为FALSE。

2. SQL%ROWCOUNT
在执行任何DML语句之前,SQL%ROWCOUNT的值都是NULL,对于SELECT INTO语句,如果执行成功,SQL%ROWCOUNT的值为1,如果没有成功,SQL%ROWCOUNT的值为0,同时产生一个异常NO_DATA_FOUND.

3. SQL%ISOPEN
SQL%ISOPEN是一个布尔值,如果游标打开,则为TRUE, 如果游标关闭,则为FALSE.对于隐式游标而言SQL%ISOPEN总是FALSE,

隐式游标在DML语句执行时打开,结束时就立即关闭。


© 著作权归作者所有

共有 人打赏支持
kshine
粉丝 2
博文 21
码字总数 6753
作品 0
宁波
程序员
私信 提问
Oracle 参数 游标[游标更新删除数据]

一、参数游标 参数游标是带有参数的游标,在定义参数游标之后,当使用不同参数值多次打开游标时,可以产生不同的结果集,语法如下: cursor cursorname(parametername datatype) is select_...

技术小胖子
2017/11/16
0
0
Oracle专题11之游标

- 什么是游标? 游标是SQL的一个内存工作区,由系统或者用户以变量的形式定义。 游标的作用就是用于临时存储从数据库中提取的数据块。 通俗的来讲,游标就是一个结果集。 游标的类型分为显式...

极客微信条
2017/12/18
0
0
Oracle基本知识: REF Cursor 用法

Oracle 系列:REF Cursor 在上文 Oracle 系列:Cursor (参见:http://blog.csdn.net/qfsv/archive/2008/05/06/2404794.aspx)中 提到个思考:怎样让游标作为参数传递? 解决这个问题就需要用...

一别经年
2015/01/07
0
0
Oracle之PL/SQL学习笔记之游标(五)

Oracle之PL/SQL学习笔记之游标(五) 在PL/SQL程序中,对于处理多行记录的事务经常使用游标来实现 1. 游标的概念 为了处理SQL语句,Oracle必须分配一片叫上下文(Context area)的区域来处理所必...

残风vs逝梦
2014/09/04
0
9
[Oracle] 变量绑定

Parent-Child cursor (父子游标) 父游标:只要SQL语句文本相同,它们就对应同一个parent cursor。 子游标:在某些情况下,虽然SQL语句的文本相同,但是因为其它因素不同(这些因素可以在视...

长平狐
2013/06/03
68
0

没有更多内容

加载失败,请刷新页面

加载更多

解析JQuery中each方法的使用

each() 方法规定为每个匹配元素规定运行的函数。写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 概述: each() 方法规定为每个匹配...

前端攻城小牛
4分钟前
0
0
深入解析Vue开发动态刷新Echarts组件的教程

需求背景:dashboard作为目前企业中后台产品的“门面”,如何更加实时、高效、炫酷的对统计数据进行展示,是值得前端开发工程师和UI设计师共同思考的一个问题。今天就从0开始,封装一个动态渲...

peakedness丶
17分钟前
2
0
memcached

memcached 为了避免内存碎片化(传统的内存管理方式是,使用完通过malloc分配的内存后通过free来回收内存,这种方式容易产生内存碎片并降低操作系统对内存的管理效率),采用了 slab allocatio...

Cobbage
17分钟前
2
0
keepalived的介绍及配置高可用集群

12月19日任务 18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集群 集群介绍 根据功能划分为2类:高可用和负载均衡 高可用集群:通常为两台服务器,一台工作,另外...

robertt15
18分钟前
5
0
WiFi攻击的三种方式

导读 WiFi的安全问题已经引起了不少的使用者重视,甚至已经出现草木皆兵的现象。那么黑客到底是如何做到绕过身份验证来获取WiFi使用权的呢?主要有以下三种方式,其中最后一种方式十分简单。 ...

问题终结者
32分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部