Oracle PL/SQL游标
游标的提出: ? ? ? ? SQL是面向集合的,其结果一般是集合量(多条记录),而PL/SQL的变量一本是标量,其一组变量异常一直只能存放一条记录。所以仅仅使用变量并不能完全满足SQL语句向应用程序输出数据的要求。因为查询结果的记录数是不确定的,事先就不知道要声明几个变量,为此,在PL/SQL中引入了游标(cursor)的概念,用游标来协调这两种不同的处理方式。 游标的概念: ? ? ? ? 游标的使用可以让用户想操作数组一样操作查询出来的数据集,实际上,它提供了一种从集合性质的结果中提取单挑记录的手段。 ? ? ? ? 游标(Cursor)形象地看出一个变动的光标。它实际上是一个指针,它在一段Oracle存放数据查询结果集的内存中,它可以指向结果集中的任意记录,初始是指向首记录。想数组的结构。 基本原理: ? ? ? ? ?在PL/SQL快中执行selec,insert,update和,delete语句时,Oracle会在内存中为其分配上下文区(Context Area),即一个缓冲区。游标是指向该去的一个指针,或是命名一个工作去,或是一种结构化数据类型。它为应用程序提供了一种具有多行数据查询结果集中的每一行数据分别进行单独处理的方法。 ? ? ? ? ?游标分为显示游标和隐式游标两种。
(提示:游标在PL/SQL中作为对数据库操作的必备部分应该熟练掌握,灵活地使用游标才能深刻地领会程序控制数据库操作的内涵。) 格式: declare? ? ? ? ? ?cursor cemp xxx? ? ? ? ? ? ? ? ? ? ? --?1、定义游标 ? ? ? ? ?begin ? ? ? ? ? ? ? ? open cemp? ? ? ? ? ? ? ? ? ? ? ?-- 2、打开游标 ? ? ? ? ? ? ? ? ?loop? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --3、向下移动游标,借助循环 ? ? ? ? ? ? ? ? ?fetch cemp into xxxx;? ? ? ?--4、抓取游标内容 ? ? ? ? ? ? ? ? ?exit when xxxx;? ? ? ? ? ? ? ? --5、循环结束条件,当游标取不到值 ? ? ? ? ? ? ? ? ?end loop; ? ? ? ? ? ? ? ? ?close cemp;? ? ? ? ? ? ? ? ? ? ?--6、关闭游标 end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |