SYS_REFCURSOR
来源:互联网 发布:软件怎么下载 编辑:程序博客网 时间:2024/06/05 19:27
1、使用SYS_REFCURSOR
SQL> Declare
2 Cur Sys_Refcursor;
3 R scott.dept%Rowtype;
4 Begin
5 Open Cur For Select * From scott.dept;
6 Loop
7 Fetch Cur Into R;
8 Exit When Cur%Notfound;
9 dbms_output.put_line('DEPTNO:'||R.deptno||' DNAME:'||R.DNAME||' LOC:'||R.LOC);
10 End Loop;
11 End;
12 /
DEPTNO:10 DNAME:ACCOUNTING LOC:NEW YORK
DEPTNO:20 DNAME:RESEARCH LOC:DALLAS
DEPTNO:30 DNAME:SALES LOC:CHICAGO
DEPTNO:40 DNAME:OPERATIONS LOC:BOSTON
PL/SQL procedure successfully completed
2、使用自定义游标
SQL> Declare
2 Type T_Cur Is Ref Cursor Return scott.dept%Rowtype;
3 Cur T_Cur;
4 R Cur%Rowtype;
5 Begin
6 Open Cur For Select * From scott.dept;
7 Loop
8 Fetch Cur Into R;
9 Exit When Cur%Notfound;
10 dbms_output.put_line('DEPTNO:'||R.deptno||' DNAME:'||R.DNAME||' LOC:'||R.LOC);
11 End Loop;
12 End;
13 /
DEPTNO:10 DNAME:ACCOUNTING LOC:NEW YORK
DEPTNO:20 DNAME:RESEARCH LOC:DALLAS
DEPTNO:30 DNAME:SALES LOC:CHICAGO
DEPTNO:40 DNAME:OPERATIONS LOC:BOSTON
PL/SQL procedure successfully completed
3、使用SYS_REFCURSOR作为输出游标
SQL> Create Or Replace Procedure Proc1(Cur_Out Out Sys_Refcursor)
2 Is
3 Begin
4 Open Cur_Out For Select * From Dept;
5 End;
6 /
Procedure created
SQL> Declare
2 Cur Sys_Refcursor;
3 R dept%Rowtype;
4 Begin
5 Proc1(Cur);
6 Loop
7 Fetch Cur Into R;
8 Exit When Cur%Notfound;
9 dbms_output.put_line('DEPTNO:'||R.deptno||' DNAME:'||R.DNAME||' LOC:'||R.LOC);
10 End Loop;
11 End;
12 /
DEPTNO:10 DNAME:ACCOUNTING LOC:NEW YORK
DEPTNO:20 DNAME:RESEARCH LOC:DALLAS
DEPTNO:30 DNAME:SALES LOC:CHICAGO
DEPTNO:40 DNAME:OPERATIONS LOC:BOSTON
PL/SQL procedure successfully completed
4、使用自定义游标作为输出游标
SQL> Create Or Replace Package pck2
2 Is
3 Type t_csr Is Ref Cursor ;
4 End;
5 /
Package created
SQL> Create Or Replace Procedure Proc2(Cur_Out Out pck2.t_csr)
2 Is
3
4 Begin
5 Open Cur_Out For Select * From Dept;
6 End;
7 /
Procedure created
SQL> Declare
2 Cur pck2.t_csr;
3 R dept%Rowtype;
4 Begin
5 Proc2(Cur);
6 Loop
7 Fetch Cur Into R;
8 Exit When Cur%Notfound;
9 dbms_output.put_line('DEPTNO:'||R.deptno||' DNAME:'||R.DNAME||' LOC:'||R.LOC);
10 End Loop;
11 End;
12 /
DEPTNO:10 DNAME:ACCOUNTING LOC:NEW YORK
DEPTNO:20 DNAME:RESEARCH LOC:DALLAS
DEPTNO:30 DNAME:SALES LOC:CHICAGO
DEPTNO:40 DNAME:OPERATIONS LOC:BOSTON
PL/SQL procedure successfully completed
SQL> Declare
2 Cur Sys_Refcursor;
3 R scott.dept%Rowtype;
4 Begin
5 Open Cur For Select * From scott.dept;
6 Loop
7 Fetch Cur Into R;
8 Exit When Cur%Notfound;
9 dbms_output.put_line('DEPTNO:'||R.deptno||' DNAME:'||R.DNAME||' LOC:'||R.LOC);
10 End Loop;
11 End;
12 /
DEPTNO:10 DNAME:ACCOUNTING LOC:NEW YORK
DEPTNO:20 DNAME:RESEARCH LOC:DALLAS
DEPTNO:30 DNAME:SALES LOC:CHICAGO
DEPTNO:40 DNAME:OPERATIONS LOC:BOSTON
PL/SQL procedure successfully completed
2、使用自定义游标
SQL> Declare
2 Type T_Cur Is Ref Cursor Return scott.dept%Rowtype;
3 Cur T_Cur;
4 R Cur%Rowtype;
5 Begin
6 Open Cur For Select * From scott.dept;
7 Loop
8 Fetch Cur Into R;
9 Exit When Cur%Notfound;
10 dbms_output.put_line('DEPTNO:'||R.deptno||' DNAME:'||R.DNAME||' LOC:'||R.LOC);
11 End Loop;
12 End;
13 /
DEPTNO:10 DNAME:ACCOUNTING LOC:NEW YORK
DEPTNO:20 DNAME:RESEARCH LOC:DALLAS
DEPTNO:30 DNAME:SALES LOC:CHICAGO
DEPTNO:40 DNAME:OPERATIONS LOC:BOSTON
PL/SQL procedure successfully completed
3、使用SYS_REFCURSOR作为输出游标
SQL> Create Or Replace Procedure Proc1(Cur_Out Out Sys_Refcursor)
2 Is
3 Begin
4 Open Cur_Out For Select * From Dept;
5 End;
6 /
Procedure created
SQL> Declare
2 Cur Sys_Refcursor;
3 R dept%Rowtype;
4 Begin
5 Proc1(Cur);
6 Loop
7 Fetch Cur Into R;
8 Exit When Cur%Notfound;
9 dbms_output.put_line('DEPTNO:'||R.deptno||' DNAME:'||R.DNAME||' LOC:'||R.LOC);
10 End Loop;
11 End;
12 /
DEPTNO:10 DNAME:ACCOUNTING LOC:NEW YORK
DEPTNO:20 DNAME:RESEARCH LOC:DALLAS
DEPTNO:30 DNAME:SALES LOC:CHICAGO
DEPTNO:40 DNAME:OPERATIONS LOC:BOSTON
PL/SQL procedure successfully completed
4、使用自定义游标作为输出游标
SQL> Create Or Replace Package pck2
2 Is
3 Type t_csr Is Ref Cursor ;
4 End;
5 /
Package created
SQL> Create Or Replace Procedure Proc2(Cur_Out Out pck2.t_csr)
2 Is
3
4 Begin
5 Open Cur_Out For Select * From Dept;
6 End;
7 /
Procedure created
SQL> Declare
2 Cur pck2.t_csr;
3 R dept%Rowtype;
4 Begin
5 Proc2(Cur);
6 Loop
7 Fetch Cur Into R;
8 Exit When Cur%Notfound;
9 dbms_output.put_line('DEPTNO:'||R.deptno||' DNAME:'||R.DNAME||' LOC:'||R.LOC);
10 End Loop;
11 End;
12 /
DEPTNO:10 DNAME:ACCOUNTING LOC:NEW YORK
DEPTNO:20 DNAME:RESEARCH LOC:DALLAS
DEPTNO:30 DNAME:SALES LOC:CHICAGO
DEPTNO:40 DNAME:OPERATIONS LOC:BOSTON
PL/SQL procedure successfully completed
0 0
- Sys_refcursor
- SYS_REFCURSOR
- SYS_REFCURSOR
- SYS_REFCURSOR一例
- sys_refcursor的用法实例
- function返回sys_refcursor
- SYS_REFCURSOR & REF CURSOR
- Ref Cursor / sys_refcursor
- ORACLE的引用游标SYS_REFCURSOR
- ORACLE的引用游标SYS_REFCURSOR
- Oracle 参照游标(SYS_REFCURSOR)使用
- sys_refcursor 和 cursor 优缺点比较
- sys_refcursor的使用(oracle自定义游标)
- cursor 与refcursor及sys_refcursor的区别
- ORACL可用SYS_REFCURSOR 返回结果集.
- ORACL可用SYS_REFCURSOR 返回结果集.
- cursor 与refcursor及sys_refcursor的区别
- oracle存储过程返回结果集SYS_REFCURSOR
- 黑马程序员-day019-字符流与IO异常处理
- 黑马程序员-day20-字节流
- 【Android动画】之Tween动画 (渐变、缩放、位移、旋转)
- 黑马程序员-day21-File类
- 图像上传
- SYS_REFCURSOR
- 上网访问速度慢的原因(计算机网络常识)
- 《深度探索C++对象模型》读书笔记——第一章(关于对象)
- JAVA接口
- Oracle用户解锁
- Android Sqlite+反射 实现CRUD
- bootstrap基础(一)文本,列表,代码,表格
- 机器学习3——决策树总结
- 冒泡排序法、选择排序法和插入排序法的排序过程