`
北极的。鱼
  • 浏览: 159025 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【转】游标

 
阅读更多

转自:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110325.html

 

Ø 游标

     游标可以对一个select的结果集进行处理,或是不需要全部处理,就会返回一个对记录集进行处理之后的结果。

     1、游标实际上是一种能从多条数据记录的结果集中每次提取一条记录的机制。游标可以完成:

          # 允许定位到结果集中的特定行

          # 从结果集的当前位置检索一行或多行数据

          # 支持对结果集中当前位置的进行修改

     由于游标是将记录集进行一条条的操作,所以这样给服务器增加负担,一般在操作复杂的结果集的情况下,才使用游标。SQL Server 2005有三种游标:T-SQL游标、API游标、客户端游标。

 

     2、游标的基本操作

          游标的基本操作有定义游标、打开游标、循环读取游标、关闭游标、删除游标。

     A、 定义游标

declare cursor_name    --游标名称
cursor [local | global]    --全局、局部
[forward only | scroll]    --游标滚动方式
[read_only | scroll_locks | optimistic]    --读取方式
for select_statements                    --查询语句
[for update | of column_name ...]        --修改字段

 参数:

     forward only | scroll:前一个参数,游标只能向后移动;后一个参数,游标可以随意移动

     read_only:只读游标

     scroll_locks:游标锁定,游标在读取时,数据库会将该记录锁定,以便游标完成对记录的操作

     optimistic:该参数不会锁定游标;此时,如果记录被读入游标后,对游标进行更新或删除不会超过

 

     B、 打开游标

          open cursor_name;

          游标打开后,可以使用全局变量@@cursor_rows显示读取记录条数

 

     C、 检索游标

          fetch cursor_name;

          检索方式如下:

             fetch first; 读取第一行

             fetch next; 读取下一行

             fetch prior; 读取上一行

             fetch last; 读取最后一行

             fetch absolute n; 读取某一行

                如果n为正整数,则读取第n条记录

                如果n为负数,则倒数提取第n条记录

                如果n为,则不读取任何记录

             fetch pelative n

                如果n为正整数,则读取上次读取记录之后第n条记录

                如果n为负数,则读取上次读取记录之前第n条记录

                如果n为,则读取上次读取的记录

 

     D、 关闭游标

          close cursor_name;

 

     E、 删除游标

          deallocate cursor_name;

 

     3、游标操作示例

--创建一个游标
declare cursor_stu cursor scroll for
    select id, name, age from student;
--打开游标
open cursor_stu;
--存储读取的值
declare @id int,
        @name nvarchar(20),
        @age varchar(20);
--读取第一条记录
fetch first from cursor_stu into @id, @name, @age;
--循环读取游标记录
print '读取的数据如下:';
--全局变量
while (@@fetch_status = 0)
begin
    print '编号:' + convert(char(5), @id) + ', 名称:' + @name + ', 类型:' + @age;
    --继续读取下一条记录
    fetch next from cursor_stu into @id, @name, @age;
end
--关闭游标
close area_cursor;

--删除游标
--deallocate area_cursor;

 

分享到:
评论

相关推荐

    游标算法_伪码.pdf

    ### 游标算法详解 #### 一、引言 在现代电子控制系统中,尤其是在汽车行业中,精确的角度测量对于实现各种安全关键系统至关重要。本篇旨在深入解析“游标算法”这一核心概念及其应用实例,通过分析给定伪代码示例,...

    游标分类汇总行转列oracleplsql

    ### 游标与行转列操作 #### 1. 游标概述 在Oracle PL/SQL中,游标是一种非常重要的机制,用于处理从数据库中检索出来的结果集。通过使用游标,可以逐行地读取数据并进行相应的处理,这在需要对查询结果执行复杂逻辑...

    sql游标行转列

    Sybase数据库,sql游标行转列,文件是一个存储过程。

    游标卡尺SolidWorks图纸

    游标卡尺是一种精密的测量工具,常用于工程和制造业中进行尺寸的精确测量。在三维建模领域,使用SolidWorks这样的专业软件可以创建出游标卡尺的虚拟模型,以便于设计、模拟和分析其结构与功能。SolidWorks 2016是一...

    游标算法_伪码Eamonn.pdf

    根据给定的文件内容,可以提炼出关于海拉传感器游标算法的知识点: 1. PWM信号占空比转换:在算法中,P和S信号的占空比(以百分比表示)需要转换成数值形式。转换的公式为PWM-P_pc = P_DutyCycle * 65535,其中PWM-...

    oracle游标使用大全1.txt

    游标可以分为显式游标和隐式游标两种类型,其中显式游标需要程序员手动声明并控制其生命周期,而隐式游标则由Oracle系统自动管理。 #### 二、声明与打开游标 ##### 显式游标的声明 在PL/SQL块中,可以通过`DECLARE...

    游标卡尺和螺旋测微器的使用课件

    游标卡尺和螺旋测微器是两种精密的测量工具,广泛应用于工程、机械、物理实验和日常生活中,尤其在尺寸精度要求较高的场合。这两款工具的正确使用是确保测量精度的关键。 首先,我们来详细了解游标卡尺。游标卡尺...

    sql 游标 处理数据方法

    游标在SQL中是一种强大的工具,它允许程序员和数据库管理员逐行处理查询结果集,而不仅仅是一次性处理所有数据。在数据库管理系统(如SQL Server)中,游标通常用于需要逐行处理数据的情况,例如更新、插入或删除...

    sql存储过程和游标的运用

    SQL存储过程和游标的运用 SQL存储过程和游标是SQL语言中两个非常重要的概念,它们可以帮助开发者更好地管理和处理数据。在本节中,我们将详细介绍存储过程和游标的基本概念和应用。 什么是存储过程 存储过程是一...

    螺旋测微器和游标卡尺的使用

    螺旋测微器和游标卡尺是两种常用的精密测量工具,它们在长度测量中起着至关重要的作用。本文将详细讲解这两种工具的使用方法、工作原理以及如何通过它们来测量物体的密度。 首先,游标卡尺是一种精度可达0.1mm的...

    SQLServer数据库游标和函数的使用(经典)

    在SQL Server中,数据库游标和函数是两个非常重要的概念,它们在数据处理和数据库操作中扮演着不可或缺的角色。游标允许我们逐行处理查询结果,而函数则提供了丰富的计算和逻辑处理能力。 首先,让我们深入理解SQL ...

    电子功用-微机电结构偏转角测量游标尺

    《电子功用-微机电结构偏转角测量游标尺》是一份重要的行业资料,主要探讨了微机电系统(Micro-Electro-Mechanical Systems,简称MEMS)在偏转角测量中的应用。这份文档深入剖析了如何利用微型化的游标尺技术精确地...

    LabVIEW游标捕捉数据点坐标

    游标捕捉是LabVIEW中一个常用的功能,它允许用户在波形图上定位并读取特定数据点的坐标值,这对于数据分析和调试非常有用。 在"LabVIEW游标捕捉数据点坐标"这个实例中,我们关注的核心技术是如何利用LabVIEW的事件...

    ORACLE转DB2对照全解

    ### ORACLE转DB2对照全解 #### 一、Oracle SQL PL与DB2 inline SQL PL对比 本章节主要介绍Oracle SQL PL与DB2 inline SQL PL之间的对比,包括但不限于存储过程、触发器、用户定义函数(UDF)、条件语句及流程控制...

    取代游标的简单方法

    通过上述方法,我们可以有效地避免使用效率较低的传统游标,转而采用更加高效简洁的方式来处理大量数据。这种方法不仅能够显著提高数据处理的速度,还能够减少系统的资源消耗,提高程序的整体性能。对于需要频繁处理...

    PL/SQL中用到的几种不同类型的游标写法(转)

    在PL/SQL(Procedural Language/Structured Query Language)中,游标是处理单行或一组数据的关键工具,尤其在数据库编程中。游标允许程序员逐行操作数据集,而不仅仅是整个数据集作为一个整体。本篇文章将深入探讨...

    JAVA调用ORACLE存储过程游标使用

    在Java编程中,调用Oracle数据库的存储过程并处理返回的游标是一项常见的任务。Oracle存储过程可以封装复杂的业务逻辑,而游标则用于在结果集上进行迭代,特别是当结果集太大,不适合一次性加载到内存时。下面将详细...

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    Oracle 存储过程调用 CallabledStatement 实用例子(IN OUT 传游标) 一、Oracle 存储过程简介 Oracle 存储过程是一种可以在 Oracle 数据库中存储和执行的程序单元。存储过程可以由多种语言编写,例如 PL/SQL、...

    T-SQL程序设计与游标设计

    T-SQL 程序设计与游标设计 T-SQL 程序设计是数据库系统原理实验三的主要内容之一,它包括变量、流程控制命令、其他命令和常用函数四部分。 变量是 T-SQL 程序设计中的重要组成部分,有两种变量:局部变量和全局...

    oracle 管道函数+动态游标

    ### 自定义类型转Table 通过前面定义的`StrIdstab`类型,我们可以方便地将多个`strIds`对象组织成一个集合。这在实际应用中非常有用,比如当需要将多个具有相同结构的数据作为一个整体进行处理时。 ### 总结 这段...

Global site tag (gtag.js) - Google Analytics