概念:
游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。
游标充当指针的作用,尽管游标能遍历结果的所有行,但它一次只能指向一行
游标其实可以理解成一个定义在特定的数据集上的指针,我们可以通过控制这个指针来遍历数据集
游标的使用:
定义游标:
DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ]
’local 意味着游标的生存周期只在函数或着存储过程中可见,
而global 意味着游标对于全文有效
[ FORWARD_ONLY | SCROLL ]
’Forward_Only:指定游标智能从第一行滚到最后一行。Fetch Next是唯一支持的提取选项
[ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]
[ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]
[ TYPE_WARNING ]
FOR select_statement
[ FOR UPDATE [ OF column_name [,...n ] ] ]
[;]
打开游标:
OPEN test_Cursor
游标的操作:
游标的使用分为俩部分
1:
操作游标在数据集内指向
2:
将游标所指向的行的部分或全部内容进行操作
支持6种移动选项,分别为到第一行(FIRST),最后一行(LAST),下一行(NEXT),上一行(PRIOR),直接跳到某行(ABSOLUTE(n)),相对于目前跳几行(RELATIVE(n)),
提取数据:
Fetch
[[Next|prior|Frist|Last|Absoute n|Relative n ]
例子:
--提取数据
fetch first from orderNum_02_cursor
fetch relative 3 from orderNum_02_cursor
fetch next from orderNum_02_cursor
fetch absolute 4 from orderNum_02_cursor
fetch next from orderNum_02_cursor
fetch last from orderNum_02_cursor
fetch prior from orderNum_02_cursor
select * from bigorder where orderNum='ZEORD003402'
关闭游标:
在游标使用完毕之后要记得关闭
CLOSE test_Cursor
释放游标:
当游标不再需要时,释放游标
DEALLOCATE test_Cursor