ORACLE游标
来源:互联网 发布:成吉思汗舞曲格格 知乎 编辑:程序博客网 时间:2024/06/08 11:57
游标分为 隐式游标,显式游标,动态游标。
如果想在运行的时候动态确定结果集,就要使用ref游标和游标变量。 创建ref游标需要两个步骤:1 声明ref cursor类型 2 声明 ref cursor类型变量。 语法如下: type ref_cursor_name is ref cursor [return record_type] 其中,return 用于指定游标提取结果集的返回类型。有return表示是强类型ref游标, 没有return表示是弱类型的游标。弱类型游标可以提取任何类型的结果集.
在PL/SQL中可以执行动态SQL语句,execute immediate 语句只能语句处理返回单行 或没有返回的SQL语句,ref游标则可以处理返回结果集的动态SQL。ref游标的声明 方法与普通ref游标相同,只是在open时指定了动态SQL字符串。 open cursor_name for dynamic_select_string [using bind_argument_list]
隐式游标SQL%ISOPEN,SQL%FOUND,SQL%NOFOUND,SQL%ROWCOUNT
游标遍历一个表
DECLARECURSOR C IS SELECT * FROM EMP;L_REC EMP%ROWTYPE;BEGINOPEN C;LOOPFETCH C INTO L_REC;EXIT WHEN C%NOTFOUND;DBMS_OUTPUT.PUT_LINE(L_REC.ENAME);END LOOP;END;
DECLARECURSOR C IS SELECT * FROM EMP;L_REC EMP%ROWTYPE;BEGINFOR L_REC IN C LOOPDBMS_OUTPUT.PUT_LINE(L_REC.ENAME);END LOOP;END;
比较上面两个程序段可以看到,若用FOR循环不需要OPEN CURSOR;而使用fetch 则需要OPEN CURSOR
DECLAREL_REC EMP%ROWTYPE;TYPE REF_MYCURSOR IS REF CURSOR;AA REF_MYCURSOR;BEGIN OPEN AA FOR SELECT * FROM EMP; LOOP FETCH AA INTO L_REC; EXIT WHEN AA%NOTFOUND; DBMS_OUTPUT.PUT_LINE(L_REC.ENAME); END LOOP;END;
DECLARECURSOR C_DEPT(P_DEPTNO NUMBER)ISSELECT * FROM EMP WHERE EMP.DEPTNO=P_DEPTNO;R_EMP EMP%ROWTYPE;BEGINFOR R_EMP IN C_DEPT(20) LOOPDBMS_OUTPUT.PUT_LINE(R_EMP.ENAME);END LOOP;END;
- Oracle游标
- Oracle游标
- ORACLE 游标
- Oracle 游标
- oracle 游标
- oracle 游标
- oracle 游标
- Oracle游标
- ORACLE游标
- Oracle游标
- Oracle 游标
- Oracle 游标
- ORACLE游标
- Oracle 游标
- oracle 游标
- Oracle 游标
- oracle游标
- ORACLE 游标
- 带Ioctl命令的字符设备驱动程序
- file_put_contents 高并发与独占锁定
- android shape的使用
- 浅拷贝.深拷贝
- 《Widgets Module》学习笔记
- ORACLE游标
- windbg 相关命令
- 大数阶乘
- windows系统默认调试器设置
- 错误:Warning: File `../table/table.pro' has modification time 3.9e+08 s in the future
- 用HTML5实现手机摇一摇的功能
- UESTC Training for Data Structures——B
- VMWare8无法最小化的问题
- VC++ HotKey