GBase8s数据库游标操作
重新打开 Select 或 Function 游标
仅当数据库服务器打开 Select 游标或 Function 游标时,它才计算在 OPEN 语句的 USING 子句
中指定的值。在打开游标时,在 USING 子句中对程序变量的后续更改不更改游标的活动集合。
在符合 ANSI 的数据库中,如果您试图打开一已打开的游标,则会收到错误代码。
在不符合 ANSI 的数据库中,后续的 OPEN 语句关闭该游标,然后重新打开它。当数据库服务器
重新打开游标时,它基于 USING 子句中变量的当前值创建新的活动集合。如果自从先前的 OPEN
语句以来这些变量已经更改,则重新打开该游标可生成一完全不同的活动集合。
即使这些变量的值未改变,在下列情况下,该活动集合中的值也可不同:
如果用户定义的函数采用了与在 Function 游标上的先前的 OPEN 语句不同的执行路径
自从 Select 游标上的先前的 OPEN 语句以来,如果表中的数据更改了
当数据库服务器打开 Select 或 Function 游标时,它可动态地处理大多数查询,无需预先取回所有
行。因此,如果其他用户在同一时间正在修改该用表正在处理的表,则活动集合可能反映这些活动
的结果。
对于一些查询,当数据库服务器打开该游标时,它计算整个活动集合。这些查询包括具有下列特性
的那些:
要求排序的查询:那些带有 ORDER BY 子句或带有 DISTINCT 或 UNIQUE 关键字的
要求散列的查询:那些带有结合或带有 GROUP BY 子句的
对于这些查询,在游标正在处理时其他用户对该表的任何更改都不反映在活动集合中。
与 Select 和 Function 游标相关的错误
由于数据库服务器首次看到该查询,它可能检测错误。在这种情况下,它不实际地返回数据的第一
行,但它重置 SQLCODE 变量和 sqlca 的 sqlca.sqlcode 字段。该值或为负数或为零,如下表所
示。
代码值 含义
负数 在 SELECT 语句中检测到错误
零 SELECT 语句有效
与 ESQL/C 例程不同,SPL 例程没有对 sqlca 结构的直接访问。ESQL/C 例程必须显式地调用内
建的 SQLCODE 函数来访问与 OPEN 引用的游标相关联的 SELECT、EXECUTE FUNCTION 或
EXECUTE PROCEDURE 语句的返回代码。
如果 SELECT、SELECT…FOR UPDATE、EXECUTE FUNCTION(或 EXECUTE PROCEDURE)语句有效,但
没有与其条件相匹配的行,则第一个 FETCH 返回值 100(SQLNOTFOUND),表示未找到行。
提示: 当您遇到 SQLCODE 错误时,还存在相应的 SQLSTATE 错误值。要了解关于如何查看
消息文本的信息,请参考 使用 SQLSTATE 错误状态代码
GBase8s数据库游标操作相关推荐
- Oracle数据库游标操作
1.含有参数的游标 declare cursor cur_my (mv number) is select * from Person where no<mv; begin for tem ...
- 从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作
本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本篇主要开始介绍基于XCod ...
- QTP中对数据库的操作(查询,更新和删除等)
标题为QTP对数据库的操作,其实应该改为QTP/VBS对数据库的操作.因为QTP中就是通过vbs完成数据库操作的.以access为例. 通过ADO对数据库访问的步骤如下: a.创建一个到数据库的 AD ...
- bottle框架学习(八)之Mysql数据库的操作
MySQLdb 是用于Python连接Mysql数据库的接口. 安装MySQLdb [root@ju bottle]# yum install MySQL-python –y 如果使用编译安装请到这里 ...
- mysql数据库游标有什么特性_MySQL数据库游标的概念介绍和游标的使用讲解
一.MySQL游标的概念 1.游标介绍 MySQL的游标(cursor)是一个重要的概念,通过查找资料与自己的理解,主要得出以下几点关于自己的理解. 有数据缓冲的思想:游标的设计是一种数据缓冲区的思想 ...
- Android中实现SQLite数据库CRUD操作的两种方式
Android中实现SQLite数据库CRUD操作的两种方式 SQLite是一款轻量级的关系型数据库,具有运行速度.占用资源少的特点.通常只需要几百KB的内存就够了,因此特别适合在移动设备上使用.SQ ...
- python操作windows库_python大佬养成计划----win下对数据库的操作
数据库 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. win系统安装mysql,详见链接描述 数据库常见命令 mysql ...
- oracle利用游标添加数据库,Oracle数据库游标的类型及使用实例全解
游标是SQL的一个内存工作区,由系统或用户以变量的形式定义.游标的作用就是用于临时存储从数据库中提取的数据块.Oracle数据库的Cursor类型包含三种: 静态游标:分为显式(explicit)游标 ...
- python数据库sqlite3_Python 操作 SQLite 数据库
本文字数:3808 字 阅读本文大概需要:10 分钟 写在之前 SQLite 是一个小型的关系型数据库,它最大的特点在于不需要单独的服务.零配置.我们在之前讲过的两个数据库,不管是 MySQL 还是 ...
最新文章
- STP生成树协议原理及配置
- 【深度学习笔记】零基础入门深度学习必备知识
- ubuntu9.10配置编译xawtv-3.95
- 何杰月c语言课程,多线程 - 何杰leo的个人空间 - OSCHINA - 中文开源技术交流社区...
- C语言课后习题(68)
- JavaScript学习笔记:迷宫游戏
- C#下实现的基础K-MEANS多维聚类
- 查询与删除MSSQL中所有外键约束
- tomcat启动很慢的解决方式
- HALCON 21.11:深度学习笔记---有监督训练(6)
- c语言递归函数奇偶归一猜想,计算机科学视角下的奇偶归一猜想
- 数据采集的目的是什么
- [imblearn]-欠采样模型合集
- 2022-2028全球及中国备用锂电池管理系统行业研究及十四五规划分析报告
- PhantomJS+Selenium+Scrapy抓取巨潮资讯网企业信息
- 中国纳米硒行业投资现状分析及发需求前景预测报告2022-2028年
- 【MM模块】Credit Memos and Reversals 红字发票和冲销
- TI单芯片毫米波雷达1642代码走读(〇)——总纲
- 分享几个实用,装逼的cmd命令。
- c语言程序中复合句用什么表示,c语言程序设计(包云)c第1章概述