一  游标的分类

  在Oracle中提供了两种类型的游标:静态游标和动态游标。

  1.静态游标是在编译时知道其SELECT语句的游标。静态游标又分为两种类型,即隐式游标和显式游标。

  2.当用户需要为游标使用的查询直到运行的时候才能够确定时,可以使用REF游标(引用游标)和游标变量。使用引用游标必须声明游标变量。引用游标又可以分为两种类型:强类型REF游标和弱类型REF游标。

  二  游标的用法

  1.显式游标的用法

  使用显式游标的4个步骤:

  1>声明游标

  语法:CURSOR cursor_name [(parameter[,parameter]...)]

     [RETURN return_type] IS select_statement;

  cursor_name:游标的名称。

  parameter:用于为游标指定输入参数。在指定数据类型时,不能使用长度约束。

  return_type:定义游标提取的行的类型。

  select_statement:游标定义的查询语句。

  2>打开游标

  语法:OPEN cursor_name[(parameters)];

  3>提取游标

  语法:FETCH cursor_name INTO variables;

  variables:变量名。

  4>关闭游标

  语法:CLOSE cursor_name;

  显式游标使用举例:

 --显式游标1
DECLARE
v_name tb_student.stu_name%TYPE;
v_sex tb_student.stu_sex%TYPE;
v_email tb_student.stu_email%TYPE;
CURSOR cur_stu IS
SELECT stu_name,stu_sex,stu_email FROM tb_student;
BEGIN
--打开游标
OPEN cur_stu;
LOOP
FETCH cur_stu INTO v_name,v_sex,v_email;
EXIT WHEN cur_stu%NOTFOUND;
dbms_output.put_line(v_name||' '||v_sex||' '||v_email);
END LOOP;
CLOSE cur_stu;
END;

  2.显式游标属性

  1>%FOUND:只有在DML语句影响一行或多行时,%FOUND才返回TRUE。

  2>%NOTFOUND:与%FOUND的作用相反。若DML语句没有影响任何行,则返回TRUE。

  3>%ROWCOUNT:返回DML语句影响的行数。若没有影响任何行,则返回0。

  4>%ISOPEN:返回游标是否已打开的值。在执行SQL语句之后,Oracle自动关闭SQL游标,所有隐式游标的%ISOPEN属性始终为FALSE。

Oracle---显式游标的更多相关文章

  1. 【Oracle】PL/SQL 显式游标、隐式游标、动态游标

    在PL/SQL块中执行SELECT.INSERT.DELETE和UPDATE语句时,Oracle会在内存中为其分配上下文区(Context Area),即缓冲区.游标是指向该区的一个指针,或是命名一个 ...

  2. ORACLE的显式游标与隐式游标

    1)查询返回单行记录时→隐式游标: 2)查询返回多行记录并逐行进行处理时→显式游标 显式游标例子: DECLARE CURSOR CUR_EMP IS SELECT * FROM EMP; ROW_E ...

  3. 【PL/SQL练习】显式游标

    cursor --------需要用户先定义,在select时,可以用于处理多行记录 1.declare  声明一个游标 2.open cursor (隐式游标自动open) 3.fetch curs ...

  4. plsql 显式游标

    显式游标的处理过程包括: 声明游标,打开游标,检索游标,关闭游标. 声明游标 CURSOR c_cursor_name IS statement; 游标相当于一个查询结果集,将查询的结果放在游标里,方 ...

  5. PL/SQL — 显式游标

    一.游标的相关概念及特性 1.定义 通过游标方式定位到结果集中某个特定的行,然后根据业务需求对该行进行相应特定的操作. 2.分类 显示游标: 用户自定义游标,用于处理select语句返回的多行数据. ...

  6. Oracle 隐式游标 存储过程

    --隐式游标 注意变量赋值用(:=) 连接符用(||)而不是加号(+) DECLARE v_pk T_PLAT_KEYWORD.ID%TYPE; --主键 v_amount_message T_PLA ...

  7. Oracle PLSQL Demo - 08.定义显式游标[Define CURSOR, Open, Fetch, Close CURSOR]

    declare v_empno scott.emp.empno%type; v_sal scott.emp.sal%type; cursor cur_emp is select t.empno, t. ...

  8. ORACLE显式授权

    同一数据库 两个不同用户 user1 user2 user1里面有一张表 table1 在user2里面创建synonymcreate synonym sy1 for user1.table1; 创建 ...

  9. oracle 使用显式的游标(CURSORs)

    使用隐式的游标,将会执行两次操作. 第一次检索记录, 第二次检查TOO MANY ROWS 这个exception . 而显式游标不执行第二次操作.

  10. Oracle游标cursor1基础和隐式游标

    --指向表行的指针,一次一行,一般向前移动 Resultset --游标永远代代表的是一行数据. /* 使用步骤 第一步:声明游标,就像是声明一个变量样. 游标的关键字就是cursor. Declar ...

随机推荐

  1. Eclipse 插件ibeetl

    启动Eclipse 打开菜单栏按一下菜单路径依次打开 Help -> Install New Softwave… ->点击Add按钮弹出一个对话框 弹出的对话框中Name随意填写,如填写“ ...

  2. Type inference

    Type inference refers to the automatic detection of the data type of an expression in a programming ...

  3. eslint推荐编码规范和airbnb推荐编码规范

    Eslint规范 for 循环禁止使用无限循环(这个非默认推荐) // bad for (var i = 0; i < 10; i--) { } for (var i = 10; i >= ...

  4. jdk?jre?

    很多人都搞不懂什么是jdk,什么是jre,只知道电脑安装了这两个就能开发和运行java程序,这里我简单讲讲什么是jdk,什么是jre. jdk,即Java Development Kit,故名思意就是 ...

  5. BZOJ 1688: [Usaco2005 Open]Disease Manangement 疾病管理 状压DP + 二进制 + 骚操作

    #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) #defin ...

  6. S-HR薪酬项目与核算表的关系

  7. Redis启动出错 noauth authentication required.

    输入认证过的密码即可. 在命令行中运行: auth password

  8. 阿里云对象存储服务,OSS使用经验总结,图片存储,分页查询

    阿里云OSS-使用经验总结,存储,账号-权限,分页,缩略图,账号切换 最近项目中,需要使用云存储,最后选择了阿里云-对象存储服务OSS.总的来说,比较简单,但是仍然遇到了几个问题,需要总结下. 1.O ...

  9. tp5 前置方法

    Route::any('adminapi/v1/login','adminapi/v1.login/login');Route::any('adminapi/v1/first','adminapi/v ...

  10. Feign 负载均衡

    一.是什么 Feign 是一个声明式 WebService 客户端.使用 Feign 能让编写 Web Service 客户端更加简单,他的使用方法是定义一个接口,然后在上面添加注解.同时也支持 JA ...