后一条记录缺省值为NEXT移动游标指针,然后取当前记录说明1主变量必须与SELECT语句中的目标列表达式具有一一对应关系2FETCH语句通常用在一个循环结构中,通过循环执行FETCH语句逐条取出结果集中的行进行处理3为进一步方便用户处理数据,现在一些关系数据库管理系统对FETCH语句做了扩充,允许用户向任意方向以任意步长移动游标指针4关闭游标使用CLOSE语句语句格式EXECSQLCLOSE游标名功能关闭游标,释放结果集占用的缓冲区及其他资源说明游标被关闭后,就不再和原来的查询结果集相联系被关闭的游标可以再次被打开,与新的查询结果相联系例题例8查询某个系全体学生的信息(学号、姓名、性别和年龄)。要查询的系名由用户在程序运行过程中指定,放在主变量dept
ame中EXECSQLINCLUDESQLCAEXECSQLBEGINDECLARESECTION例题
f说明主变量dept
ameHS
oHS
ameHSsexHSage等EXECSQLENDDECLARESECTIONgetsdept
ame
为主变量dept
ame赋值
例题EXECSQLDECLARESXCURSORFORSELECTS
oS
ameSsexSageFROMStude
tWHERESDeptdept
ame说明游标EXECSQLOPENSX打开游标例题WHILE1用循环结构逐条处理结果集中的记录EXECSQLFETCHSXINTOHS
oHS
ameHSsexHSage将游标指针向前推进一行,然后从结果集中取当前行,送相应主变量例题ifsqlcasqlcodeSUCCESSbreak若所有查询结果均已处理完或出现SQL语句错误,则退出循环由主语言语句进行进一步处理例题EXECSQLCLOSESX关闭游标二、CURRENT形式的UPDATE语句和DELETE语句CURRENT形式的UPDATE语句和DELETE语句的用途非CURRENT形式的UPDATE语句和DELETE语句面向集合的操作一次修改或删除所有满足条件的记录二、CURRENT形式的UPDATE语句和DELETE语句CURRENT形式的UPDATE语句和DELETE语句的用途如果只想修改或删除其中某个记录
f用带游标的SELECT语句查出所有满足条件的记录从中进一步找出要修改或删除的记录用CURRENT形式的UPDATE语句和DELETE语句修改或删除之CURRENT形式的UPDATE语句和DELETE语句步骤1DECLARE说明游标2OPEN打开游标,把所有满足查询条件的记录从指定表取至缓冲区3FETCH推进游标指针,并把当前记录从缓冲区中取出来送至主变量CURRENT形式的UPDATE语句和DELETE语句4检查该记录是否是要修改或删除的记录,是则处理之5重复第3和4步,用逐条取出结果集中的行进行判断和处理6CLOSE关闭游标,释放结果集占用的缓冲区和其他资源CURRENT形式的UPDATE语句和r