----4.7 ref游标(loop循环)

/***

怎么使用  REF游标 ?
 ①声明REF 游标类型,确定REF 游标类型;
  ⑴强类型REF游标:指定retrun type,REF 游标变量的类型必须和return type一致。
   语法:Type   REF游标名   IS   Ref Cursor Return  结果集返回记录类型;
  ⑵弱类型REF游标:不指定return type,能和任何类型的CURSOR变量匹配,用于获取任何结果集。
   语法:Type   REF游标名   IS   Ref Cursor;
 ②声明Ref 游标类型变量;
  语法:变量名  已声明Ref 游标类型;
  
 ③打开REF游标,关联结果集 ;
  语法:Open   Ref 游标类型变量   For   查询语句返回结果集;
  
 ④获取记录,操作记录;
  语法:Fetch    REF游标名 InTo   临时记录类型变量或属性类型变量列表;
  
 ⑤关闭游标,完全释放资源;
  语法:Close   REF游标名;

能够使用ref弱类型REF游标就不要使用强类型REF游标

***/

--案例1:ref弱类型游标:loop循环

create or replace procedure proc_select8
(
choice in varchar2
)
as
TYPE cur IS REF CURSOR;  --声明游标类型为ref
a cur;     --声明变量为ref游标类型
osname t1%rowtype;
begin
if  choice='full' then
open a for select * from t1;
loop
fetch a into osname; 
exit when a%notfound;
dbms_output.put_line( '职工的编号为:'||osname.sid||';'||'的职工姓名为  '||osname.sname );
end loop;
elsif choice='top' then
open a for select * from t1 where rownum<10;
loop
fetch a into osname; 
exit when a%notfound;
dbms_output.put_line( '职工的编号为:'||osname.sid||';'||'的职工姓名为  '||osname.sname );
end loop;
else
  dbms_output.put_line('请输入正确值full或top!谢谢配合!');
return;
end if;
close a;
end;
  
      
set serveroutput on
exec proc_select8('full') ;
exec proc_select8('top') ;

--案例2:ref强类型游标:loop循环

create or replace procedure proc_select9
as
TYPE cur IS REF CURSOR RETURN t1%RowType;  --声明游标类型为ref
a cur;     --声明变量为ref游标类型
osname t1%rowtype;
begin
open a for select * from t1; 
loop
fetch a into osname;
exit when a%notfound;
dbms_output.put_line( '职工的编号为:'||osname.sid||';'||'的职工姓名为  '||osname.sname );
end loop;
close a;
end;

set serveroutput on
exec proc_select9 ;

REF游标的更多相关文章

  1. oracle ref游标

    Oracle 系列:REF Cursor 在上文  Oracle 系列:Cursor  (参见:http://blog.csdn.net/qfs_v/archive/2008/05/06/240479 ...

  2. ref游标(动态游标)

    参照变量--用于存放数值指针的变量    游标变量(ref cursor)   使用游标时,当定义游标时不需要指定相应的select语句,但是当使用    游标时(open时)需要指定select语句 ...

  3. Oracle PLSQL Demo - 20.弱类型REF游标[没有指定查询类型,也不指定返回类型]

    declare Type ref_cur_variable IS REF cursor; cur_variable ref_cur_variable; v_ename ); v_deptno ); v ...

  4. Oracle PLSQL Demo - 16.弱类型REF游标[没有指定查询类型,已指定返回类型]

    declare Type ref_cur_variable IS REF cursor; cur_variable ref_cur_variable; rec_emp scott.emp%RowTyp ...

  5. Oracle PLSQL Demo - 15.强类型REF游标[预先指定查询类型与返回类型]

    declare Type ref_cur_emp IS REF CURSOR RETURN scott.emp%RowType; cur_emp ref_cur_emp; rec_emp cur_em ...

  6. Oracle学习笔记十一 游标

    游标的简介 游标的概念 游标是从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中的数据进行各种操作 ...

  7. Oracle 游标

    游标的简介 游标的概念 游标是从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中的数据进行各种操作 ...

  8. oracle 之 游标

    本期主题  灰蓝 游标用来处理从数据库中检索的多行记录(使用SELECT语句)存放的是select 的结果 利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集 --隐式游标 begin upd ...

  9. PL/SQL之--游标

    一.游标简介 在PL/SQL中执行SELECT.INSERT.DELETE和UPDATE语句时,ORACLE会在内存中为其分配上下文区(Context Area),也称为缓冲区.游标是指向该区的一个指 ...

随机推荐

  1. Angular JS - 6 - Angular JS 常用指令

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. Oracle 部门员工查询

    --部门:部门编号,部门名称,地址: --员工:员工编号,员工名字,职务,管理编号,入职日期,薪资,奖金,部门编号: CREATE TABLE dept( deptno INT PRIMARY KEY ...

  3. 企业级Web服务器安全主动防御措施

    篇一 : 企业级Web服务器安全主动防御措施 Web服务器现在已经成为了病毒.木马的重灾区.不但企业的门户网站被篡改.资料被窃取,而且还成为了病毒与木马的传播者.有些Web管理员采取了一些措施,虽然可 ...

  4. python中chr()函数和ord()函数的用法

    一,chr()函数 格式:Chr(<数值表达式>)   说明:函数返回值类型为String,其数值表达式值取值范围为0~255.   例如:Print Chr(78),结果显示:N.   ...

  5. Windows10下安装CentOS7双系统

    参考: 参考1 参考2 问题1

  6. App知识点(持续更新......)

    1.app的性能测试,即专项测试,需要重点关注那些方面? 内存.cpu占用.耗电量.流量.流畅度等 2.什么是activity?它的生命周期? Activity是一个Android的应用组件,它提供屏 ...

  7. python-django之cookie及session

    Cookie Cookie的由来 Http协议是无状态的 无状态的意思是每次都是独立的请求存在,它的执行情况和结果与前面的请求和后面的请求都无直接关系,它不会受到前面的请求响应情况直接影响,也不会直接 ...

  8. 常用开发类库支持--UUID及空值处理Optional

    一.java常用类库--UUID --UUID类库的使用非常简单,只需要使用静态方法UUID.randomUUID(就可以正常使用) public class MyUUID { public stat ...

  9. Java-技术专区-如何监控Java线程池的状态

    线程池介绍 什么是线程池.线程池核心类.线程池工作流程.线程池分类.拒绝策略.及如何提交与关闭线程池等. 但在实际开发过程中,在线程池使用过程中可能会遇到各方面的故障,如线程池阻塞,无法提交新任务等. ...

  10. Groovy学习:第二章 Groovy语言的关键特征

    1. 断言Assertion断言:用于判断预期的条件是否为真.例子:def list = [1,2,'x']assert list.size()==32. AST转换期使用的注释AST转换的注释:Gr ...