来源于数据库系统概论
使用游标的SQL语句:
必须使用游标的SQL语句有:
查询结果为多条记录的SELECT语句、CURRENT形式的UPDATE和DELETE语句。
一、查询结果为多条记录的SELECT语句
一般情况下,SELECT语句查询结果是多条记录,因此需要用游标机制,将多条记录一次一条送主程序处理,从而把对集合的操作转换为对单个记录的处理。
使用游标的步骤为:
1、说明游标。
用DECLARE语句为一条SELECT语句定义游标:
DECLARE <游标名> CURSOR FOR <SELECT语句>;
定义游标仅仅是一条说明性语句,这时RDBMS并不执行SELECT语句。
2、打开游标
用OPEN语句将定义的游标打开。
OPEN <游标名>;
打开游标实际上是执行相应的SELECT语句,把查询结果取到缓冲区中。这时游标处于活动状态,指针指向查询结果集中的第一条记录。
3、推进游标指针并取当前记录
FETCH <游标名> INTO <主变量>[<指示变量>][,<主变量>[<指示变量>]]...;
其中主变量必须与SELECT语句中的目标列表达式具有一一对应关系。
用FETCH语句把游标指针向前推进一条记录,同时将缓冲区中的当前记录取出来送至主变量供主语言进一步处理。通过循环执行FETCH语句逐条取出结果集中的行进行处理。
4、关闭游标
用CLOSE语句关闭游标,释放结果集占用的缓冲区及其他资源。
CLOSE <游标名>;
游标被关闭后,就不再和原来的查询结果集相联系。但被关闭的游标可以再次被打开,与新的查询结果相联系。