Oracle中使用游标详解 一、使用游标 对于DML语句和单行select into ,oracle自动分配隐形游标。处理select返回多行语句,可以使用显式游标。 使用显示游标处理多行数据,也可使用SELECT..BULK COLLECT INTO 语句处理多行数据. 1.定义游标 cursor cursor_name is select_statement; 2.打开游标 执行对应的SELECT语句并将SELECT语句的结果暂时存放到结果集中. open cursor_name; 3.提取数据 打开游标后,SELECT语句的结果被临时存放到游标结果集中,使用FETCH语句只能提取一行数据 通过使用FETCH..BULK COLLECT INTO语句每次可以提取多行数据 1 2 3 (1)游标中使用fetch..into语句:只能处理一行数据,除非用循环语句 1 2 3 4 5 6 7 8 9 10 11 12 或 1 2 3 4 5 6 7 8 9 10 11 12 (3)基于游标定义记录变量 1 2 3 4 5 6 7 8 9 10 11 4.关闭游标 1 5.游标属性 用于返回显示游标的执行信息,包括%isopen,%found,%notfound,%rowcount %isopen:确定游标是否打开 %found:检查是否从结果集中提取到了数据 %notfound:与%found行为相反。 %rowcount:返回当前行为止已经提取到的实际行数 no_data_found和%notfound的用法是有区别的,小结如下1)SELECT. . . INTO 语句触发 no_data_found; 2)当一个显式光标(静态和动态)的 where 子句未找到时触发 %notfound; 3)当UPDATE或DELETE语句的where 子句未找到时触发 sql%notfound; 4)在光标的提取(Fetch)循环中要用 %notfound 或%found 来确定循环的退出条件,不要用no_data_found。 6.参数游标 注意:定义参数游标时,游标参数只能指定数据类型,而不能指定长度。 1 2 3 4 5 6 7 8 9 10 11 12 二、for循环遍历,实现遍历游标最高效方式。 使用FOR循环时,ORACLE会隐含的打开游标,提取游标数据并关闭游标。 每循环一次提取一次数据,在提取了所有数据后,自动退出循环并隐含的关闭游标。 1.使用游标FOR循环 1 2 3 4 5 6 7 8 2.在游标FOR循环中直接使用子查询 1 2 3 4 5 
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/20490.html