首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在不使用游标的情况下对SELECT中的所有行执行存储过程

在不使用游标的情况下对SELECT查询结果中的每一行执行存储过程,可以通过多种方法实现,具体取决于你使用的数据库系统。以下是一些常见的方法:

基础概念

  • 游标(Cursor):数据库对象,用于从结果集中提取单条记录,并允许程序逐行处理结果集。
  • 存储过程(Stored Procedure):预编译的SQL代码块,可以通过名称调用并执行一系列操作。

相关优势

  • 性能提升:避免使用游标可以减少资源消耗和提高处理速度。
  • 简化代码:使用集合操作或临时表可以使代码更加简洁和易于维护。

类型与应用场景

  • 集合操作:适用于需要对整个结果集进行批量操作的场景。
  • 临时表:适合需要多次查询和处理结果集的情况。
  • 表值函数:可用于返回表结构的数据,便于进一步处理。

示例解决方案

使用临时表

  1. 创建一个临时表来存储SELECT查询的结果。
  2. 将查询结果插入到临时表中。
  3. 对临时表中的每一行执行存储过程。
代码语言:txt
复制
-- 假设有一个存储过程名为ProcessRow,接受一个参数
CREATE PROCEDURE ProcessRow @param INT
AS
BEGIN
    -- 处理逻辑
END;

-- 创建临时表
CREATE TABLE #TempTable (
    Id INT PRIMARY KEY,
    OtherColumns NVARCHAR(MAX)
);

-- 将SELECT查询结果插入到临时表
INSERT INTO #TempTable (Id, OtherColumns)
SELECT Id, OtherColumns FROM YourTable;

-- 对临时表中的每一行执行存储过程
DECLARE @id INT;
DECLARE cur CURSOR FOR SELECT Id FROM #TempTable;
OPEN cur;
FETCH NEXT FROM cur INTO @id;
WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC ProcessRow @id;
    FETCH NEXT FROM cur INTO @id;
END;
CLOSE cur;
DEALLOCATE cur;

-- 删除临时表
DROP TABLE #TempTable;

使用表值函数

如果存储过程可以转换为表值函数,可以直接在SELECT语句中使用。

代码语言:txt
复制
-- 假设有一个表值函数名为ProcessTable
CREATE FUNCTION ProcessTable (@input INT)
RETURNS TABLE
AS
RETURN (
    -- 返回处理后的结果集
);

-- 直接在SELECT中使用表值函数
SELECT * FROM YourTable AS t
CROSS APPLY ProcessTable(t.Id);

遇到问题的原因及解决方法

  • 性能问题:如果处理大量数据时性能不佳,可以考虑优化存储过程的逻辑,或者使用并行处理技术。
  • 数据一致性问题:确保在执行过程中对数据的修改是原子性的,避免并发操作导致的数据不一致。

解决方法

  • 优化存储过程:检查存储过程中的逻辑,减少不必要的计算和I/O操作。
  • 使用事务:在执行关键操作时使用事务,确保数据的完整性和一致性。
  • 监控和调优:使用数据库性能监控工具来识别瓶颈并进行相应的调优。

通过上述方法,可以在不使用游标的情况下高效地对SELECT查询结果中的每一行执行存储过程。

相关搜索:是否可以在不使用游标的情况下在集合上执行存储过程?mysql中的存储过程嵌套游标循环不执行所有结果如何在不声明所有参数的情况下在mySQL中创建存储过程?在不执行IntelliJ中select的情况下运行视图创建脚本使用存储过程中的Select query为单个变量分配多个行如何让我对存储在测试表中的所有LD运行这个Select?使用dbms_job在包内的oracle中执行存储过程如何使用autosys在不更改截止日期参数的情况下运行存储过程如何使用存储过程更新另一个表中的所有列和行如何查找在Linux执行过程中实际使用的所有共享库?如何在不将结果存储在R中的情况下对排列执行“即时”检查在没有提交的情况下读取第二个存储过程中第一个执行的存储过程插入的数据?使用dplyr在R中不指定列名的情况下插入新行如何使用Python在不添加新行的情况下更改循环内文件中的行值?尝试将附加值添加到使用存储过程检索的所有行的列中的现有值如何根据存储在Cassandra中的结果,使用spark对多个公司执行累积平均?使用GithubBrowserSample在没有transformation.switchmap的情况下在视图模型中执行存储库方法调用在ant design protable中,有没有办法在搜索字段中使用select,其中select的所有选项都来自对远程服务器的API调用?如何在Firebase中搜索单个对象,然后在不使用forEach的情况下对其执行某些操作?Android:在不破坏架构的情况下,使用网络拦截器中的数据执行与UI相关的工作
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SQLSERVER 存储过程 语法

,如果该存储过程带有参数来执行 它, 在SQL Server 的系列版本中,存储过程分为两类:系统提供的存储过程和用户自定义存储过程 。...存储过程具有以下优点 1.存储过程允许标准组件式编程(模块化设计) 存储过程在被创建以后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句,而 且数 据库专业人员可随时对存储过程进行修改...,在首次运行一个存储过程时,查询优化器对其进 行分析优 化,并给出最终被存在系统表中的执行计划,而批处理的Transaction-SQL 语句在每次运行时 都要进行 编译和优化...4.存储过程可被作为一种安全机制来充分利用    系统管理员通过,对执行某一存储过程的权限进行限制,从而能够实现对相应的数据访问权限的 限 制。...,而不记录单个行删除操作,不能带条件 /* TRUNCATE TABLE 在功能上与不带 Where 子句的 Delete 语句相同:二者均删除表中的全部行 。

2.6K20

MySQL中的游标

游标(cursor)是一个存储在MySQL服务器上的数据库查询, 它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游 标之后,应用程序可以根据需要滚动或浏览其中的数据。...我们执行完上面的存储过程后,就可以调用该存储过程了 CALL PROC1(); 得到结果: 这里肯定有小伙伴好奇,customers表里明明有7条记录,为什么只显示了1条记录?...这是因为游标的变量只保留了customers表中的第一行数据,如果要查看后面的数据,就需要循环往下移动游标,才能继续查看。...示例二 定义一个存储过程,调用存储过程时,将表customers里的数据循环写入新的表里面。...,并查询cus表里的数据 CALL PROC2(); SELECT * FROM cus; 结果: 结果与customers里的一致,但是这些结果是循环一条一条往下移动的过程中插入的,即这个循环执行了

50210
  • 不懂或不知MySQL中的游标,你可以进来看看

    游标(cursor)是一个存储在MySQL服务器上的数据库查询, 它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游 标之后,应用程序可以根据需要滚动或浏览其中的数据。...注意:MySQL游标可以用于 存储过程,函数,触发器,事件中 2.游标特性 数据库也可以选择不复制结果集 不可更新 游标只能向一个方向行进,并且不可以跳过任何一行数据。...要使用游标,先要定义一个游标变量 3.创建游标 在创建一个游标前,我们需要先清除游标的语法 1、定义游标 DECLARE 游标名称 CURSOR FOR SQL语句; 2、打开游标 OPEN 游标名称;...这是因为游标的变量只保留了customers表中的第一行数据,如果要查看后面的数据,就需要循环往下移动游标,才能继续查看。...,并查询cus表里的数据 CALL PROC2();SELECT * FROM cus; 结果: 结果与customers里的一致,但是这些结果是循环一条一条往下移动的过程中插入的,即这个循环执行了7

    11.2K270

    父游标、子游标及共享游标

    游标将逐条取出查询的记录,直到取完所有记录)                 关闭游标(释放UGA中该游标占有的相关资源,但Library Cache中的游标的执行计划按LRU原则清除,为其游标共享提供可能性...由上面游标的生命周期可知,任何的游标(SQL语句)都必须经历内存分配,解析,         执行与关闭的过程。故对隐式游标而言,生命周期的所有过程由系统来自动完成。...对所有的DML和单行查询(select … into …)而言,         系统自动使用隐式游标。多行结果集的DQL则通常使用显示游标。...二、游标的解析过程(产生shared cursor)         解析过程:         A、包含vpd的约束条件:                 SQL语句如果使用的表使用了行级安全控制,安全策略生成的约束条件添加到...其主要目的未进行转换的情况下是寻找无法被考虑到的执行计划         E、物理优化:                 为逻辑优化阶段的SQL语句产生执行计划,读取数据字典中的统计信息以及动态采样的统计信息

    1.5K20

    MySQL从删库到跑路_高级(九)——存储过程

    游标是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。 尽管游标能遍历结果中的所有行,但一次只指向一行。 游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作。...3、游标的优点 游标是针对行操作的,对从数据库中SELECT查询得到的结果集的每一行可以进行分开的独立的相同或不同的操作,是一种分离的思想。游标是面向集合与面向行的设计思想之间的一种桥梁。...如果采用面向集合的SQL语句,扫描成本为O(N);但如果采用面向集合的SQL语句的扫描成本为O(N*N),则使用游标有可能会带来性能上的提升。 游标的缺点是只能一行一行操作。...在数据量大的情况下,速度过慢。数据库大部分是面对集合的,业务会比较复杂,而游标使用会有死锁,影响其他的业务操作,不可取。 当数据量大时,使用游标会造成内存不足现象。...5、游标的适用场景 MySQL数据库中,可以在存储过程、函数、触发器、事件中使用游标。

    76230

    数据库概念相关

    允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。 减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。...更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。 2. oracle的存储过程和函数有什么区别?...Oracle中的函数与存储过程的区别: A:函数必须有返回值,而过程没有. B:函数可以单独执行.而过程必须通过execute执行. C:函数可以嵌入到SQL语句中执行.而过程不行....24.如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除,先 truncate table ,然后 drop table ,这样可以避免系统表的较长时间锁定。...在结果集中包括“合计”的例程通常要比使用游标执行的速度快。如果开发时间允许,基于游标的方法和基于集的方法都可以尝试一下,看哪一种方法的效果更好。

    1.7K110

    sql server T-SQL 基础

    < ^(按位异或)、&(按位与)、|(按位或) NOT AND ALL、ANY、BETWEEN、IN、LIKE、OR、 =(赋值) 5.流程控制语句 控制流语句是用来控制程序执行流程的语句,使用控制流语句可以在程序中组织语句的执行流程...T-SQL提供控制流关键字,用于控制语句、语句块和存储过程的执行流。...其语法格式为: GOTO lable ⑥ RETURN语句 使用RETURN语句,可以从查询或过程中无条件退出。可在任何时候用于从过程、批处理或语句块中退出,而不执行位于RETURN之后的语句。...⑦ WAITFOR语句 使用WAITFOR语句,可以在指定的时间或者过了一定时间后,执行语句块、存储过程或者事务。...7.游标的使用 游标包括以下两个部分: ①游标结果集  定义该游标的SELECT语句返回的行的集合。 ②游标位置  指向这个集合中某一行的指针。 游标的典型使用过程 : ?

    2.1K60

    6.存储过程中的游标使用(610)

    这对于需要对每一行数据进行特定处理的场景非常有用,如数据转换、数据清洗、复杂计算等。本文将详细介绍游标的概念、使用方法以及在存储过程中的应用。 1....游标的基本概念 游标是数据库查询结果集的指针,它指向结果集中的某一行,通过游标可以逐行遍历查询结果集,并对每一行数据进行处理。游标(Cursor)是数据库中的一个重要概念,它用于逐行处理查询结果集。...我们声明了一个游标cur,用于遍历users表中的所有行。...复杂逻辑处理 在某些情况下,可能需要根据每行数据的特定条件执行不同的操作。游标提供了一种机制,可以在处理每行数据时应用复杂的业务逻辑。...相关文章推荐: 1.MySQL存储过程基础(1/10) 2.创建第一个MySQL存储过程(2/10) 3.使用条件语句编写存储过程(3/10) 4.循环结构在存储过程中的应用(4/10) 5.错误处理在存储过程中的重要性

    13210

    数据库查询优化

    如果你需要一行一行的执行操作,考虑下边这些选项中的一个或多个来代替游标的使用: 使用临时表 使用WHILE循环 使用派生表 使用相关子查询 使用CASE语句 使用多个查询...在子查询中,NOT IN子句将执行一个内部的排序和合并。无论在哪种情况下,NOT IN都是最低效的,因为它对子查询中的表执行了一个全表遍历。...例如,通过网络发送一个存储过程调用,而不是发送500行的TSQL将更快,资源使用更少。当每次执行SQL时,都会执行解析SQL语句、估算索引的利用率、绑定变量、读数据块等等工作。...* 作为首要的常规,所有的TSQL代码都应该通过存储过程调用。 13.1 存储过程名不要以 sp_ 开头: 对这一准则,可能很多人会感觉纳闷,是的,我开始也纳闷过。...如果SQLServer在Master数据库里不能找到存储过程,那么接下来会将存储过程的拥有者作为DBO去解析。如果存储过程在目前的数据库里,那么它会执行。

    4.3K20

    提高数据库的查询速率及其sql语句的优化问题

    l、如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除,先 truncate table ,然后 drop table ,这样可以避免系统表的较长时间锁定。...3)使用存储过程 应用程序的实现过程中,能够采用存储过程实现的对数据库的操作尽量通过存储过程来实现,因为存储过程是存放在数据库服务器上的一次性被设计、编码、测试,并被再次使用,需要执行该任务的应用可以简单地执行存储过程...·索引是一个表中所包含值的列表,其中注明了表中包含各个值的行所在的存储位置,使用索引查找数据时,先从索引对象中获得相关列的存储位置,然后再直接去其存储位置查找所需信息,这样就无需对这个表进行扫描,从而可以快速的找到所需数据...数据库游标的作用(cursor): 游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标充当指针的作用。尽管游标能遍历结果中的所有行,但他一次只指向一行。...概括来讲,SQL的游标是一种临时的数据库对象,即可以用来存放在数据库表中的数据行副本,也可以指向存储在数据库中的数据行的指针。游标提供了在逐行的基础上操作表中数据的方法。

    96720

    Oracle-procedurecursor解读

    Oracle-procedure解读 ---- procedure概述 存储过程( Stored Procedure )是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。...用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 存储过程是由流控制和 SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。...在 ORACLE 中,若干个有联系的过程可以组合在一起构成程序包。...---- procedure优点 存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。...存储过程可以重复使用,可减少数据库开发人员的工作量。 安全性高,可设定只有某用户才具有对指定存储过程的使用权。 ---- 和function的区别 ?

    90720

    使用嵌入式SQL(五)

    使用嵌入式SQL(五)嵌入式SQL变量以下局部变量在嵌入式SQL中具有特殊用途。这些局部变量名称区分大小写。在过程启动时,这些变量是不确定的。它们由嵌入式SQL操作设置。...在嵌入式SQL中使用以下ObjectScript特殊变量。这些特殊的变量名称不区分大小写。在过程启动时,这些变量将初始化为一个值。它们由嵌入式SQL操作设置。不能使用SET或NEW命令直接设置它们。...当触发器代码显式设置%ok = 0来中止触发器时,这最常用于从触发器发出用户定义的消息。当执行SQL代码时,将使用有效的NLS语言生成错误消息字符串。可以在不同的NLS语言环境中编译SQL代码。...因此,要确定实际删除的行数,请在TRUNCATE TABLE之前对表执行COUNT(*),或者使用DELETE而不是TRUNCATE TABLE删除表中的所有行。...没有声明游标的SELECT只能作用于一行,因此执行简单的SELECT总是会将%ROWCOUNT设置为1(与检索到的选择标准匹配的单行)或0(没有与选择标准匹配的行)。

    2.7K20

    千万级MySQL数据库建立索引,提高性能的秘诀

    当数据库执行select … for update时会获取被select中的数据行的行锁,因此其他并发执行的select … for update如果试图选中同一行则会发生排斥(需要等待行锁被释放),因此达到锁的效果...CURD操作:在MyISAM中,如果执行大量的SELECT,MyISAM是更好的选择。对于InnoDB,如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。...如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除,先 truncate table ,然后 drop table ,这样可以避免系统表的较长时间锁定。...在结果集中包括“合计”的例程通常要比使用游标执行的速度快。如果开发时间允许,基于游标的方法和基于集的方法都可以尝试一下,看哪一种方法的效果更好。...在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SET NOCOUNT OFF。无需在执行存储过程和触发器的每个语句后向客户端发送DONE_IN_PROC 消息。

    3.8K10

    5.数据库

    ,性别 select name,age,sex from stu ; android中的数据库SQLite  android中建立数据的过程:       a)首先进行自定义一个类进行继承SQLiteOpenHelper...第一个参数是表名,表示希望从哪张表中查 询数据。第二个参数用于指定去查询哪几列,如果不指定则默认查询所有列。第三、第四个参数用于去约束查询某一行或某几行的数据,不指定则默认是查询所有行的数据。...第五个参数用于指定需要去 group by的列,不指定则表示不对查询结果进行 group by操作。第六个参数用于对group by之后的数据进行进一步的过滤,不指定则表示不进行过滤。...,只是简单地在 onUpgrade()方法中删除掉了当前所有的表,然后强制重新执行了 一遍 onCreate()方法。...这里请注意一个非常重要的细节,switch中每一个 case的最后都是没有使用 break的,这是为了保证在跨版本升级的时候, 每一次的数据库修改都能被全部执行到。

    76880

    SQL优化完整详解

    如果使用到了临时表,在存储过程的最后务必将所有的临时表显式删除,先 truncate table ,然后 drop table ,这样可以避免系统表的较长时间锁定。 4....28).在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SET NOCOUNT OFF 。...无需在执行存储过程和触发器的每个语句后向客户端发送 DONE_IN_PROC 消息。 5. 事务的问题: 29).尽量避免大事务操作,提高系统并发能力。 6....1)、SIMPLE:表示最简单的 select 查询语句,也就是在查询中不包含子查询或者 union交并差集等操作。...在不损失精确性的情况下,长度越短越好 8 ref 显示索引的哪一列被使用了,如果可能的话,是一个常数 常见的有:const,func,null,字段名。

    1.2K40

    PLSQL-游标

    显式和隐式游标的区别: 尽量使用隐式游标,避免编写附加的游标控制代码(声明,打开,获取,关闭),也不需要声明变量来保存从游标中获取的数据。...REF游标和静态游标的区别 1)静态游标不能返回到客户端。ref游标能够被返回到客户端,是从Oracle的存储过程返回结果集的方式。 2)不能在包说明或包体中的过程或函数之外定义ref游标。...UPDATE或DELETE语句中的WHERE CURRENT OF子串专门处理要执行UPDATE或DELETE操作的表中取出的最近的数据。...当对话使用FOR UPDATE子串打开一个游标时,所有返回集中的数据行都将处于行级(ROW-LEVEL)独占式锁定,其他对象只能查询这些数据行,不能进行UPDATE、DELETE或SELECT...FOR...在多表查询中,使用OF子句来锁定特定的表,如果忽略了OF子句,那么所有表中选择的数据行都将被锁定。如果这些数据行已经被其他会话锁定,那么正常情况下ORACLE将等待,直到数据行解锁。

    74320

    SQL游标(cursor)详细说明及内部循环使用示例

    一般复杂的存储过程,都会有游标的出现,他的用处主要有: 定位到结果集中的某一行。 对当前位置的数据进行读写。 可以对结果集中的数据单独操作,而不是整行执行相同的操作。...由此可见,游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力;而且,正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来...由于服务器游标并不支持所有的Transact-SQL语句或批处理,所以客户游标常常仅被用作服务器游标的辅助。因为在一般情况下,服务器游标能支持绝大多数的游标操作。...只进游标:只进游标不支持滚动,只支持从头到尾顺序提取数据,数据库执行增删改,在提取时是可见的,但由于该游标只能进不能向后滚动,所以在行提取后对行做增删改是不可见的。...Local:作用域为局部,只在定义它的批处理,存储过程或触发器中有效。 Global:作用域为全局,由连接执行的任何存储过程或批处理中,都可以引用该游标。

    2K20

    SQL游标(cursor)详细说明及内部循环使用示例

    一般复杂的存储过程,都会有游标的出现,他的用处主要有: 定位到结果集中的某一行。 对当前位置的数据进行读写。 可以对结果集中的数据单独操作,而不是整行执行相同的操作。...由此可见,游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力;而且,正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来...由于服务器游标并不支持所有的Transact-SQL语句或批处理,所以客户游标常常仅被用作服务器游标的辅助。因为在一般情况下,服务器游标能支持绝大多数的游标操作。...只进游标:只进游标不支持滚动,只支持从头到尾顺序提取数据,数据库执行增删改,在提取时是可见的,但由于该游标只能进不能向后滚动,所以在行提取后对行做增删改是不可见的。...Local:作用域为局部,只在定义它的批处理,存储过程或触发器中有效。 Global:作用域为全局,由连接执行的任何存储过程或批处理中,都可以引用该游标。

    2.2K30

    SQL命令 DISTINCT

    它将每个不同(唯一)值返回的行数限制为一个任意行。如果未指定DISTINCT子句,则默认情况下显示满足选择条件的所有行。...ALL子句与不指定DEFAULT子句相同;如果指定ALL,SELECT将返回表中满足选择条件的所有行。...但是,嵌入式SQL基于游标的查询可以返回多行数据;在基于游标的查询中,DISTINCT子句只返回唯一值行。 DISTINCT和ORDER BY DISTINCT子句在ORDER BY子句之前应用。...此默认设置按字母值的大写排序规则对字母值进行分组。此优化利用选定字段的索引。因此,只有在一个或多个选定字段存在索引时才有意义。它对存储在索引中的字段值进行排序;字母字符串以全部大写字母返回。...如果SELECT不包含FROM子句,则DISTINCT是合法的,但没有意义。 聚合函数:可以在聚合函数中使用DISTINCT子句,以仅选择要包含在聚合中的不同(唯一)字段值。

    4.4K10

    MySQL 游标学习及使用实例

    (为什么要学习游标) 游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作; 它还提供对基于游标位置而对表中数据进行删除或更新的能力;...Transact_SQL 游标主要用在服务器上,由从客户端发送给服务器的Transact_SQL 语句或是批处理、存储过程、触发器中的Transact_SQL 进行管理。...由于服务器游标并不支持所有的Transact-SQL语句或批处理,所以客户游标常常仅被用作服务器游标的辅助。因为在一般情况下,服务器游标能支持绝大多数的游标操作。...例如你在游标打开的时候,对游标查询的数据表数据进行增删改,操作之后,静态游标中select的数据依旧显示的为没有操作之前的数据。如果想与操作之后的数据一致,则重新关闭打开游标即可。...只进游标:只进游标不支持滚动,只支持从头到尾顺序提取数据,数据库执行增删改,在提取时是可见的,但由于该游标只能进不能向后滚动,所以在行提取后对行做增删改是不可见的。

    2.2K10
    领券