plsql里游标有什么作用,查询为什么用游标而不直接用select语句

plsql里游标有什么作用,查询为什么用游标而不直接用select语句,第1张

游标作用:通常情况下,关系数据库中的 *** 作总是对整个记录集产生影响,例如使用SELECT语句检索数据表时,将得到所有满足该语句where子句中条件的记录,而在实际应用过程中,经常需要每次处理一条或者一部分记录。在这种情况下,需要使用游标在服务器内部处理结果集合,他可以有助于识别一个数据集合内部指定的记录,从而可以有选择的按记录执行 *** 作。

视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查, *** 作,视图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。

游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。

游标说简单点都是设置一个数据表的行指针,然后使用循环等 *** 作数据

以下是一个示例

create procedure UpdateValue    --存储过程里面放置游标

as

begin

   

    declare UpdateCursor cursor    --声明一个游标,查询满足条件的数据

        for select 主键,SD_VAL from EQ_SD_D

       

    open UpdateCursor    --打开

       

    declare @id int,@SD_VAL nvarchar(20)  --声明一个变量,用于读取游标中的值

        fetch next from UpdateCursor into @id,@SD_VAL

       

    while @@fetch_status=0    --循环读取

        begin

        update EQ_SD_D set name=@SD_VAL where id=@id

        fetch next from UpdateCursor into @id,@SD_VAL

        end

       

    close UpdateCursor    --关闭

       

    deallocate UpdateCursor    --删除

       

end

这里是一个教学

>

游标 其实就像是指针的东西 在你查询结果集的时候 游标是在第一条结果的前面 这样当你拨动游标的时候 他会向下移动一个位置 指向第二条记录 这样就会 读取出结果集中说有数据 比如 在C#中的read()方法 和java中的 next() 都是拨动游标的方法 我说的可能不太形象 楼主可以把它当做链表的指针 呵呵 楼主看看这里比较详细

>

因为我们做的数据量大,而且系统上跑的不只我们一个业务。所以,我们都要求尽量避免使用游标,游标使用时会对行加锁,可能会影响其他业务的正常进行。而且,数据量大时其效率也较低效。另外,内存也是其中一个限制。因为游标其实是相当于把磁盘数据整体放入了内存中,如果游标数据量大则会造成内存不足,内存不足带来的影响大家都知道了。所以,在数据量小时才使用游标。

现在的C#,以及java之类的语言已经是面向对象了,基本很少用到游标 因为逻辑处理,以及循环基本都在程序中体现出来 现在有用到游标的情况下,就是优化的时候会用到,比如:一个要循环插入值,所插入的值又在另外一张表中查询出来的,这时候,如果用程序去循环,务必会加重了程序与sql的负担,所以,创建一个存储过程是必须的。这时候就有可能用到游标了 游标最常用的时候是面向过程的编程中。。

以上就是关于plsql里游标有什么作用,查询为什么用游标而不直接用select语句全部的内容,包括:plsql里游标有什么作用,查询为什么用游标而不直接用select语句、数据库中,什么叫视图游标是什么、sql server 中游标的作用麻烦简单举例说明。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9814804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存