Oracle学习笔记二十一:动态游标的使用

Oracle学习笔记二十一:动态游标的使用一、概念 • REF游标和游标变量用于处理运行时动态执行的SQL查询的结果集。 • 创建游标变量有两个步骤: • 声明REF游标类型 • 声明REF游标类型的游标变量 • 声明REF游标的语法: ty

Oracle学习笔记二十一:动态游标的使用

一、概念

• REF游标和游标变量用于处理运行时动态执行的SQL查询的结果集。

• 创建游标变量有两个步骤:

  • 声明REF游标类型

  • 声明REF游标类型的游标变量

• 声明REF游标的语法:

  type 游标类型名 is ref cursor [return 返回值类型]

二、区别

• 静态游标和REF游标的区别:

  • 静态游标是静态定义,REF游标是动态关联。

  • 使用REF游标需REF游标变量。

  • REF游标能作为参数进行传递,而静态游标是不能的。

三、优势 

• 游标变量与游标相比较:

  • 游标只能处理静态的查询语言

  • 游标变量可以处理动态查询语句的结果集

四、实例

declare
    --强类型的游标类型
    type strong_cursor_type is ref cursor return emp%rowtype;
    --弱类型的游标类型
    type weak_cursor_type is ref cursor;
    
    --变量定义
    strong_cursor strong_cursor_type;
    weak_cursor weak_cursor_type;
    v_emp emp%rowtype;
begin
    open strong_cursor for select * from emp;
    loop
        fetch strong_cursor into v_emp;
        exit when strong_cursor%notfound;
        dbms_output.put_line(v_emp.empno || "-" || v_emp.ename);
    end loop;
    close strong_cursor;
    
    open weak_cursor for "&sql";
    loop
        fetch weak_cursor into v_emp;
        exit when weak_cursor%notfound;
        dbms_output.put_line(v_emp.empno || "-" || v_emp.ename);
    end loop;
    close weak_cursor;
end;

 

原文地址:https://www.cnblogs.com/atomy/archive/2022/06/05/16343191.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5152.html

(0)
上一篇 2023-05-20 20:30
下一篇 2023-05-21

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注