`
greenwen
  • 浏览: 216947 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

PL/SQL--游标(CURSOR)学习

阅读更多
显式游标和隐式游标

显式游标的使用需要4步:

1. 声明游标
  CURSOR mycur(vartype number) is
  select emp_no,emp_zc from cus_emp_basic 
  where com_no = vartype;


2. 打开游标
open mycur(000627)
注:000627是参数

3. 读取数据
fetch mycur into varno, varprice;

4. 关闭游标
close mycur;

游标的属性
oracle 游标有4个属性:%ISOPEN,%FOUND,%NOTFOUND,%ROWCOUNT。
%ISOPEN判断游标是否被打开,如果打开%ISOPEN等于true,否则等于false;
%FOUND %NOTFOUND判断游标所在的行是否有效,如果有效,则%FOUNDD等于true,否则等于false;
%ROWCOUNT返回当前位置为止游标读取的记录行数。

示例:
set serveroutput on;
declare
varno varchar2(20);
varprice varchar2(20);
CURSOR mycur(vartype number) is
select emp_no,emp_zc from cus_emp_basic 
where com_no = vartype;
begin
if mycur%isopen = false then
open mycur(000627);
end if;
fetch mycur into varno,varprice;
while mycur%found 
loop
dbms_output.put_line(varno||','||varprice);
if mycur%rowcount=2 then
exit;
end if;
fetch mycur into varno,varprice;
end loop;
close mycur;
end;


PL/SQL记录的结构和C语言中的结构体类似,是由一组数据项构成的逻辑单元。

PL/SQL记录并不保存在数据库中,它与变量一样,保存在内存空间中,在使用记录时候,要首先定义记录结构,然后声明记录变量。可以把PL/SQL记录看作是一个用户自定义的数据类型。
set serveroutput on;
declare
type person is record
(
empno cus_emp_basic.emp_no%type,
empzc cus_emp_basic.emp_zc%type);
person1 person;
cursor mycur(vartype number)is
select emp_no,emp_zc from cus_emp_basic 
where com_no=vartype;
begin
if mycur%isopen = false then
open mycur(000627);
end if;
loop
fetch mycur into person1;
exit when mycur%notfound;
dbms_output.put_line('雇员编号:'||person1.empno||',地址:'||person1.empzc);
end loop;
close mycur;
end;


典型游标for 循环

游标for循环示显示游标的一种快捷使用方式,它使用for循环依次读取结果集中的行数据,当form循环开始时,游标自动打开(不需要open),每循环一次系统自动读取游标当前行的数据(不需要fetch),当退出for循环时,游标被自动关闭(不需要使用 close)。使用游标for循环的时候不能使用open语句,fetch语句和close语句,否则会产生错误。
set serveroutput on;
declare
cursor mycur(vartype number)is
select emp_no,emp_zc from cus_emp_basic 
where com_no=vartype;
begin
for person in mycur(000627) loop
dbms_output.put_line('雇员编号:'||person.emp_no||',地址:'||person.emp_zc);
end loop;
end;
分享到:
评论

相关推荐

    PL/SQL Developer8.04官网程序_keygen_汉化

     定义游标的语法结构如下: cursor cursor_name is SQL语句; 在本文第一段代码中有一句话如下: cursor c_emp is select * from employee where emp_id=3; 其含义是定义一个游标c_emp,代表employee表中所有emp_id...

    PL/SQL 基础.doc

    PL/SQL 基础,一个不错的 PL/SQL 参考手册。内容预览: ---- 第一章 PL/SQL 简介 ---- 1. Oracle应用编辑方法概览 1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用; 2) ODBC 3) OCI: C语言和...

    PL_SQL模块学习之十、游标

    文章目录游标1.1 显式游标...隐式游标是PL/SQL创建并管理 显示游标由用户创建并管理 select * from v$open_cursor查看当前会话游标 详情参考oracle中cursor与refcursor及sys_refcursor的区别 1.1 显式游标 1.1.1 创

    Oracle帮助文档

    PL/SQL异常处理 游标(cursor) 子程序/过程(procedure) 子程序/函数 事务处理 触发器 包 范式 数据备份(exp)与恢复(imp) 归档方式 过程练习题 考试题_查询部分 考试题_查询部分(2) 考试题_pl/sql 习题...

    精通Oracle.10g.PLSQL编程

    访问Oracle 6.1 检索单行数据 6.2 操纵数据 6.2.1 插入数据 6.2.2 更新数据 6.2.3 删除数据 6.2.4 SQL游标 6.3 事务控制语句 6.4 习题 第7章 编写控制结构 7.1 条件分支...

    PLSQLDeveloper下载

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发... 在PL/SQL中处理显示游标所必需的四个步骤: 1)声明游标;CURSOR cursor_name IS select_statement 2)为查询打开游标;OPEN cursor_...

    Oracle面试题

    2. 如何使用Oracle的游标? 1. oracle中的游标分为显示游标和隐式游标 2. 显示游标是用cursor...is命令定义的游标,它可以对查询语句(select)返回的多...PL/SQL隐式地打开SQL游标,并在它内部处理SQL语句,然后关闭它

    Oracle10g_PL_SQL_编程讲义

    主要内容:PL/SQL 语言的基本特征、PL/SQL程序的结构、PL/SQL语言的控制结构、游标(cursor)编程、错误处理、存储过程和函数、创建包(Package)、触发器(Trigger)。

    Oracle 游标的使用

    在PL/SQL中可以使用游标处理数据。通过使用游标可以大大提高PL/SQL程序对数据处理的能力。在Oracle 9i及其以后的版本中,还增加了使用BULK COLLECT子句批量绑定数据和使用CURSOR表达式实现嵌套游标的功能。本章将...

    OraclePLSQL编程经典例子

    ③ 当定义游标时,建议用_cursor作为后缀:emp_cursor ④ 当定义例外时,建议用e_作为前缀:e_error 块(block)是pl/sql的今本程序单元,编写pl/sql程序实际上就是在编写pl/sql块;pl/sql块由三部分组成:定义部分...

    Oracle数据库存储过程技术文档.doc

    2.2 游标(CURSOR) 17 2.2.1 游标的概念 18 2.2.2 游标的属性 18 2.2.3 游标中FOR循环的使用 20 2.2.4 带参数游标的使用方法 20 2.3 动态SQL语句 21 2.4 例外处理 22 2.5 一个完整的PL/SQL实例 24 第三章 oracle存储...

    oracle复习笔记之PL/SQL程序所要了解的知识点

    PL/SQL的基本语法、记录类型、流程控制、游标的使用、 异常处理机制、存储函数/存储过程、触发器。 为方便大家跟着我的笔记练习,为此提供数据库表文件给大家下载:点我下载 为了要有输出的结果,在写PL/SQL程序前都...

    Cursor2LOB:从游标(表/查询)创建 CSV 数据作为 Oracle CLOB/BLOB-开源

    Cursor2LOB 是一组 Oracle PL/SQL 例程,它们创建(或附加到)Oracle CLOB 或 BLOB,这些数据包含来自 Cursor(即来自表或查询)的数据,这些数据采用 CSV 或固定列格式。 此外,还有能够将 CSV 数据写入(或附加)...

    精通SQL--结构化查询语言详解

    17.1 sql游标的基本概念 349 17.1.1 游标的概念 349 17.1.2 游标的作用及其应用 350 17.2 sql游标的使用 351 17.2.1 使用declare cursor语句创建游标 351 17.2.2 使用open/close语句打开/关闭游标 352 17.2.3 ...

    PLSQL中显示游标使用的4个步骤

     CURSOR cursor_name[(parameter[, parameter]…)]  [RETURN datatype]  IS  select_statement;  游标参数只能为输入参数,其格式为:  parameter_name [IN] datatype [{:= | DEFAULT} expre

    Oracle 游标使用总结

    显示游标(Explicit Cursor):在PL/SQL程序中定义的、用于查询的游标称作显示游标。 隐式游标(Implicit Cursor):是指非PL/SQL程序中定义的、而且是在PL/SQL中使用UPDATE/DELETE语句时,Oracle系统自动分配的游标...

    Mysql的游标的定义使用及关闭深入分析

    关于游标的用法Mysql现在提供的还很特别,虽然使用起来没有PL/SQL那么顺手,不过使用上大致上还是一样, 定义游标 declare fetchSeqCursor cursor for select seqname, value from sys_sequence; 使用游标 open ...

    SQLBoy 存储过程之历险记

    文章目录:1、概述:2、存储过程概念及语法格式:3、数据类型与定义变量和常量4、特殊数据类型之%TYPE和%ROWTYPE5、在存储过程中%TYPE和%ROWTYPE常用来在PL/SQL中定义变量:6、 循环语句Loop 使用7、PL/SQL 游标 概念...

    在Oracle PL/SQL中游标声明中表名动态变化的方法

    /* 小弟刚刚接触ORACLE存储... –这个变量就是用来存放所要取得的字段内容,但不知该如何定义 cursor curSort1 is select 服务类型 from tabname order by 编码; –此语句也不对提示找不到表名 begin …..

    oracle实验报告

    PL/SQL块中的可执行部分是由一系列语句组成的(包括对数据库进行操作的SQL语句,PL/SQL语言的各种流程控制语句等)。在块中对数据库查询,增、删、改等对数据的操作是由SQL命令完成的。在PL/SQL块中,可以使用SQL的...

Global site tag (gtag.js) - Google Analytics