Oracle---显式游标
一 游标的分类
在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---显式游标的更多相关文章
- 【Oracle】PL/SQL 显式游标、隐式游标、动态游标
在PL/SQL块中执行SELECT.INSERT.DELETE和UPDATE语句时,Oracle会在内存中为其分配上下文区(Context Area),即缓冲区.游标是指向该区的一个指针,或是命名一个 ...
- ORACLE的显式游标与隐式游标
1)查询返回单行记录时→隐式游标: 2)查询返回多行记录并逐行进行处理时→显式游标 显式游标例子: DECLARE CURSOR CUR_EMP IS SELECT * FROM EMP; ROW_E ...
- 【PL/SQL练习】显式游标
cursor --------需要用户先定义,在select时,可以用于处理多行记录 1.declare 声明一个游标 2.open cursor (隐式游标自动open) 3.fetch curs ...
- plsql 显式游标
显式游标的处理过程包括: 声明游标,打开游标,检索游标,关闭游标. 声明游标 CURSOR c_cursor_name IS statement; 游标相当于一个查询结果集,将查询的结果放在游标里,方 ...
- PL/SQL — 显式游标
一.游标的相关概念及特性 1.定义 通过游标方式定位到结果集中某个特定的行,然后根据业务需求对该行进行相应特定的操作. 2.分类 显示游标: 用户自定义游标,用于处理select语句返回的多行数据. ...
- Oracle 隐式游标 存储过程
--隐式游标 注意变量赋值用(:=) 连接符用(||)而不是加号(+) DECLARE v_pk T_PLAT_KEYWORD.ID%TYPE; --主键 v_amount_message T_PLA ...
- 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. ...
- ORACLE显式授权
同一数据库 两个不同用户 user1 user2 user1里面有一张表 table1 在user2里面创建synonymcreate synonym sy1 for user1.table1; 创建 ...
- oracle 使用显式的游标(CURSORs)
使用隐式的游标,将会执行两次操作. 第一次检索记录, 第二次检查TOO MANY ROWS 这个exception . 而显式游标不执行第二次操作.
- Oracle游标cursor1基础和隐式游标
--指向表行的指针,一次一行,一般向前移动 Resultset --游标永远代代表的是一行数据. /* 使用步骤 第一步:声明游标,就像是声明一个变量样. 游标的关键字就是cursor. Declar ...
随机推荐
- Arduino 操作共阴极RGB LED
一.原理图 注:电阻选用1k的 二. 实物图 三.完整事例代码,三种颜色不停的交替闪烁 实验结果自己运行观察
- BZOJ2212——线段树合并
学习线段树合并,以这道题为契机 多谢这篇博客 这里是通过对线段树合并时,顺手统计了对于一颗子树内,是否反转两种情况的逆序对数 这里只对代码进行详细分析,见注解好了 #include<cstdio ...
- pytorch实战(7)-----卷积神经网络
一.卷积: 卷积在 pytorch 中有两种方式: [实际使用中基本都使用 nn.Conv2d() 这种形式] 一种是 torch.nn.Conv2d(), 一种是 torch.nn.function ...
- eas之获取不同类型的组织视图
OrgViewF7 orgF7=new OrgViewF7(this);orgF7.setCurrentCUID(company.getId().toString());orgF7.setMultiS ...
- eas之kdtable格式化
设置表.列.行或单元的格式化字符串 // 设置表table.getStyleAttributes().setNumberFormat(formatString); // 设置列column.getSt ...
- 【剑指Offer】11、二进制中1的个数
题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 解题思路: 本题有以下两个解决方案: (1)依次判断每一位.判断的方法是先与1相与,为1则说明该位为1 ...
- 关于 docsify ssr 的研究
关于 docsify ssr 的研究 docsify 虽然不错, 但是不支持 seo .官网虽然提供 seo 的一个简单示例, 但总总问题在 issues 中无人解答. 今天再次尝试, 解决了 ind ...
- C#第九节课
try catch using System;using System.Collections.Generic;using System.Linq;using System.Text;using Sy ...
- 2、在1.VMware虚拟机上安装ubantu系统
1.新建新的虚拟机系统 2.使用自定义高级安装 3.选择下一步操作 4.选择稍后安装 4.因为我们要安装的是Linux的发行版本ubuntu,所以这里选择Linux(L),版本是Ubuntu 64位, ...
- 【hihocoder 1329】 平衡树·Splay(set做法)
[题目链接]:http://hihocoder.com/problemset/problem/1329 [题意] [题解] 因为一开始是空的树,所以; n其实就代表了树中的最多元素个数; 则最坏的情况 ...