SQL编程:从静态到动态的全面解析
1. 滚动游标(Scroll Cursors)
滚动游标在允许用户浏览数据库内容的程序中特别有用。当用户请求逐行或逐屏向前或向后移动数据时,程序可以轻松获取查询结果中的所需行。然而,与普通的单向游标相比,数据库管理系统(DBMS)实现滚动游标要困难得多。
为了支持滚动游标,DBMS 必须跟踪它为程序提供的先前查询结果以及提供这些结果行的顺序。此外,DBMS 还必须确保没有其他并发执行的事务修改通过滚动游标对程序可见的数据,因为即使游标已经移过某一行,程序仍可以使用扩展的 FETCH 语句重新检索该行。
使用滚动游标时,需要注意某些 DBMS 品牌在执行滚动游标上的特定 FETCH 语句时可能会产生很高的开销。如果 DBMS 通常在程序逐行获取查询结果时逐步执行查询,当游标位于查询结果的第一行时请求 FETCH NEXT 操作,程序可能会比正常情况等待更长时间。因此,在编写依赖滚动游标功能的生产应用程序之前,最好了解特定 DBMS 品牌的性能特征。
由于滚动游标的实用性,并且一些 DBMS 供应商开始提供略有不同的滚动游标实现,SQL 标准进行了扩展以支持滚动游标。标准的入门级 SQL 级别仅要求使用旧样式的顺序向前游标,但中级 SQL 或完整 SQL 级别要求完全支持滚动游标语法。标准还规定,如果在游标上使用除 FETCH NEXT(默认)之外的任何移动操作,其 DECLARE CURSOR 语句必须明确将其标识为滚动游标。例如:
exec sql declare repcurs scroll cursor for
select
超级会员免费看
订阅专栏 解锁全文
891

被折叠的 条评论
为什么被折叠?



