Oracle Cursor游标的使用
来源:互联网 发布:docker swarm 网络 编辑:程序博客网 时间:2024/06/11 16:57
Oracle 游标 cursor的使用
1、游标的使用
1、声明游标
2、打开游标
3、逐行读取游标中的数据,进行处理。
4、关闭游标
2、游标属性
open ---打开游标found --- 判断有没有受影响的数据notfound --- 判断有没有受影响的数据isopen --- 判断游标是否打开rowcount --- 返回受影响的行数fetch --- 向下移动一步游标close --- 关闭游标
3、游标分类
1、隐式游标
隐式游标中SELECT..INTO 语句,当执行的时候会有三种可能:(1).结果集只含有一行,且select是成功的 (2).没有查询到任何结果集,引发NO_DATA_FOUND异常 (3).结果集中含有两行或者更多行,引发TOO_MANY_ROWS异常。
//使用方式: sql%found … declare v_emp emp%rowtype; begin select * into v_emp from emp where empno = '7369'; if sql%isopen then //当sql语句执行完毕后,隐式游标自动关闭 dbms_output.put_line('open'); end if; if sql%found then dbms_output.put_line('found'); end if; dbms_output.put_line(sql%rowcount); end; /
输出结果:
found1
2、显式游标
1、采用for循环的方式移动游标
//采用for循环的方式,oracle将游标的open、fetch、close自动完成。[推荐使用] declare cursor cur_emp is select * from emp; begin for v_emp in cur_emp loop dbms_output.put_line(v_emp.empno||' '||v_emp.ename); end loop; end; /
2、采用while循环的方式
//需要自己手动打开、移动、关闭游标,并需要判断当前游标是否有数据declarev_emp emp%rowtype;cursor cur_emp is select * from emp;beginopen cur_emp;fetch cur_emp into v_emp;while cur_emp%found loopdbms_output.put_line(v_emp.empno||' '||v_emp.ename);fetch cur_emp into v_emp;end loop;close cur_emp;end;/
3、动态游标
//类似do…while…结构/*1、声明一个游标类型,并指定游标的返回类型为emp%rowtype2、用声明的类型来创建变量 [变量名 类型]3、游标赋值 open cur_emp for select * from emp;4、使用并关闭游标*/declaretype emp_ref is ref cursor return emp%rowtype;cur_emp emp_ref; v_emprow emp%rowtype;beginopen cur_emp for select * from emp;loopfetch cur_emp into v_emprow;exit when cur_emp%notfound;dbms_output.put_line(v_emprow.empno||' '||v_emprow.ename);end loop;close cur_emp;end;/
//while循环结构declaretype emp_ref is ref cursor return emp%rowtype;cur_emp emp_ref;v_emprow emp%rowtype;beginopen cur_emp for select * from emp;fetch cur_emp into v_emprow;while cur_emp%found loopdbms_output.put_line(v_emprow.empno||' '||v_emprow.ename);fetch cur_emp into v_emprow;end loop;end;/
4、分页显示:
SQL> select * 2 from (select row_.*, rownum rownum_ 3 from (select * 4 from test 5 order by id asc) row_ 6 where rownum <= 20) 7 where rownum_ >= 10;
0 0
- ORACLE游标(cursor)的使用
- Oracle Cursor游标的使用
- Oracle 游标 Cursor 使用
- oracle的游标Cursor的使用
- oracle命令cursor(游标)的使用
- Oracle中游标Cursor的使用
- Cursor游标的使用
- oracle游标cursor简单使用
- 关于oracle中动态游标的使用例子ref cursor
- ORACLE 通过游标使用来了解cursor 的好处!
- Oracel 游标Cursor的使用
- ORACLE中用for in 使用cursor 游标
- Oracle 游标Cursor 的基本用法
- oracle 之游标 ref cursor的用法
- Oracle 游标Cursor 的基本用法
- oracle cursor 游标
- oracle cursor 游标(转载)
- oracle 游标(cursor)
- Package manager has died at android.app.ApplicationPackageManager.getInstalledPackages
- <11>Android HAL 处理硬件设备访问权限问题
- 有关get_global/local_id/size
- 【UML之用例图】
- AlertDialog(警示/消息对话框)
- Oracle Cursor游标的使用
- 表的cell的高度自适应
- dom4j学习笔记
- 上课笔记 for循环
- AVFoundation汉子转语音
- LESS学习笔记(上)
- playframework--控制器
- 控制流
- mysql索引问题