`

Oracle中的游标

阅读更多
静态游标:与一个sql语句关联,编译块时候,语句已知
动态游标:运行时候与不同的sql关联

游标变量:
       类似于pl/sql变量,可以在运行时接纳不同的值.
定义游标变量的完整语法:       
        1.具有返回类型的,称为有约束的游标或者强游标
             type type_name is ref cursor return return_type;
        2.没有返回类型的,称为无约束的游标或者弱游标
             type type_name is ref cursor ;
        3.返回值为记录类型
弱游标:
--------------------------------------------------------------------------------
   declare
        type ref_cur is ref cursor;
        v_cur ref_cur;
        ab varchar2(10);
        vals varchar2(20);
   begin
        ab:='&input_choice';
        if upper(ab)='A' then
             open v_cur for select ename
                                                from emp
                                                where empno=7369;
             fetch v_cur into vals;
             dbms_output.put_line('姓名:'||vals);
             close v_cur;
       else
             open v_cur for select dname
                                                from dept
                                                where deptno=10;
             fetch v_cur into vals;
             dbms_output.put_line('部门名称:'||vals);
             close v_cur;
end if;
end;
/
--------------------------------------------------------------------------
强游标:用记录集
    declare
          type recordtype is record(
                  r_deptno number(2),
                  r_dname varchar2(14),
                  r_loc        varchar2(13)
                                                   );
           type rt_cur is ref cursor return dept%rowtype;
           vrt_cur rt_cur;
           value_rt   recordtype ;
     begin
           open vrt_cur for select deptno,dname,loc
                                                from dept;
            loop
                   fetch vrt_cur into value_rt ;
                   exit when vrt_cur%notfound;
                   dbms_output.put_line('编号 '||value_rt.r_deptno||' 部门 '||value_rt.r_dname );
            end loop;
            close vrt_cur ;
      end;
----------------------------------------------------------------------------
强游标:用表
declare        
        type rt_cur is ref cursor return dept%rowtype;
           vrt_cur rt_cur;
           value_rt   dept%rowtype;
     begin
           open vrt_cur for select deptno,dname,loc
                                                from dept;
            loop
                   fetch vrt_cur into value_rt ;
                   exit when vrt_cur%notfound;
                   dbms_output.put_line('编号 '||value_rt.deptno||' 部门 '||value_rt.dname );
            end loop;
            close vrt_cur ;
      end;

分享到:
评论

相关推荐

    Oracle 数据库游标使用大全

    除了SELECT… INTO,还可以在游标中使用INSERT、UPDATE和DELETE等DML语句,这些语句可以与游标结合,对查询结果进行逐行操作。 5. **DML语句的结果** - **SQL%FOUND**:在执行DML语句后,如果至少有一行被影响,...

    快速掌握Oracle数据库游标的使用方法

    使用记录变量可以方便地从游标中提取数据行。当游标选择很多列的时候,那么使用记录变量比为每列声明一个变量要方便得多。记录变量可以使用 TYPE 命令和%ROWTYPE 定义,例如:DECLARE R_emp EMP%ROWTYPE;其中,R_emp...

    oracle 隐式游标,显示游标,游标循环

    ### Oracle中的游标详解 #### 一、引言 在Oracle数据库中,游标是一种非常重要的机制,它允许用户在程序中对查询结果...此外,通过使用循环结构,可以有效地遍历游标中的每一行数据,从而实现复杂的业务逻辑处理。

    oracle数据库游标使用例子

    以下是关于Oracle游标使用的一些关键知识点: 1. **游标的基本概念**: 游标(Cursor)是一种机制,它允许我们遍历和操作由SQL查询返回的结果集。通过游标,我们可以控制数据的读取顺序,一次只处理一行,或者在...

    Oracle数据库游标使用.rar

    Oracle数据库游标是数据库编程中的一个重要概念,尤其在处理大量数据时,它们提供了一种有效且灵活的方法。游标允许程序逐行访问查询结果集,而不是一次性加载所有数据。这在处理复杂的数据操作,如循环处理、条件...

    Oracle的游标学习

    3. 处理游标:通过FETCH语句从游标中提取数据,并将其赋值给变量。 ```sql FETCH cursor_name INTO variable1, variable2, ...; ``` 4. 检查游标状态:使用`%NOTFOUND`、`%ISOPEN`、`%ROWCOUNT`等属性检查游标的...

    oracle笔记游标的使用

    oracle笔记游标的使用,游标的详细代码案例,游标知识点笔记!

    oracle数据库游标实验报告

    oracle数据库游标实验报告!oracle数据库游标实验报告!oracle数据库游标实验报告!

    oracle函数触发器游标等几个小例子

    在`oracle游标.txt`中,你可以学习到如何声明、打开、读取和关闭游标。游标在处理大量数据时非常有用,特别是在需要逐行处理或循环遍历结果集的情况下。例如,如果你需要更新数据库中满足特定条件的所有行,游标将是...

    oracle数据库的游标

    在使用显式游标时,通常通过循环结构来迭代游标中的数据。游标循环有多种实现方式,包括使用loop循环、while循环和for循环。每种循环方式有其特定的场景和优势。例如,for循环会自动打开和关闭游标,并且会自动处理...

    oracle游标的总结oracle游标的总结

    Oracle 游标是 Oracle 数据库中的一种重要概念,用于查询数据库,获取记录集合(结果集)的指针。游标可以看作是一个临时表,你可以对其每一行的数据进行任意的操作。本文将对 Oracle 游标的概念、分类、声明方式、...

    ORACLE 游标使用示例

    在"游标.txt"文件中,可能包含了更多关于Oracle游标的使用实例和技巧,包括游标的声明、动态游标、游标变量、游标表达式以及游标在存储过程和函数中的应用。这些内容可以帮助你更深入地理解和掌握Oracle游标,提高你...

    oracle-游标使用汇总.doc

    然后,通过`FETCH`命令从游标中获取数据: ```sql FETCH cursor_name INTO variable[,variable,...]; ``` 这里的`variable`是与游标查询结果列相匹配的变量,它们的数据类型应与查询结果列的类型一致。例如: ```sql...

    Oracle数据库游标使用大全

    Oracle数据库游标是PL/SQL编程中不可或缺的一部分,它们允许程序逐行处理查询结果,提供了更灵活的数据操作方式。在Oracle数据库中,游标主要分为两种类型:隐式游标和显式游标。 1. **隐式游标**: - 当在PL/SQL...

    oracle解决游标多维度循环查询效率过低方案

    多维度查询时通常需要建立多个游标循环,查询效率无法得到保障,现在通过游标和substr()函数相结合的方式提高查询效率

    Oracle函数游标以及包的定义

    该文件讲解了Oracle数据库中函数游标的创建以及包的定义,对数据库有更深层次的了解

    非常详细的Oracle游标整理

    - 在循环中使用`fetch into`语句取出游标中的数据,`exit when rowList%notfound`用于检测是否还有更多记录。 3. **REF游标**: - REF游标是动态游标的一种,它允许处理动态SQL查询的结果集,即在运行时创建SQL...

    Oracle入门--Oracle游标使用

    Oracle游标是PL/SQL编程中的重要组成部分,主要用于处理单行或多行查询结果。游标允许程序员逐行处理查询结果,而不是一次性加载所有数据。在Oracle中,游标分为显式游标和隐式游标。 1. **隐式游标**:在PL/SQL中...

    ORACLE中的游标.ppt

    ORACLE中的游标.ppt

Global site tag (gtag.js) - Google Analytics