隐式游标:一次只能返回一行结果(不需要定义,默认自动建立)
  显式游标: 需要开发人员提前定义,可以通过循环的方式处理游标里的sql语句,返回多行结果
 
  隐式游标的属性:
   sql%rowcout    统计在游标中处理的记录数
   sql%found      如果在游标中能找到符合条件的一条记录,结果为true
   sql%notfound   如果在游标中能找不到符合条件的一条记录,结果为true
   sql%isopen     判断游标是否打开,在隐式游标中默认游标自动打开

1.隐式游标:

sql%notfound   如果在游标中能找不到符合条件的一条记录,结果为true
SQL> declare
2
3 v_id t1.id%type;
4
5 begin
6
7 v_id :=10;
8
9 update t1 set id=20 where id=v_id;
10 if sql%notfound then
11 insert into t1(id) values (v_id);
12 commit;
13 end if;
14 end;

2. sql%found      如果在游标中能找到符合条件的一条记录,结果为true

SQL> declare
2
3 v_id t1.id%type;
4
5 begin
6
7 v_id :=10;
8
9 delete from t1 where id = v_id;
10
11 if sql%found then
12 dbms_output.put_line('T1 recorder is delete !');
13 commit;
14 end if;
15 end;

3.sql%rowcout    统计在游标中处理的记录数

SQL> declare
2
3 v_id t1.id%type;
4
5 begin
6
7 v_id :=10;
8
9 insert into t1 (id) values (v_id);
10 delete from t1 where id = v_id;
11
12 if sql%found then
13 dbms_output.put_line('T1 recorder is delete !');
14 dbms_output.put_line('T1 recorders '||sql%rowcount||' rows was deleted !'); //统计删除的行数
15 commit;
16 end if;
17 end;

【PL/SQL练习】游标cursor :oracle 在执行sql语句时,为sql语句所分配的一个私有的内存区域的更多相关文章

  1. JS流程控制语句 做判断(if语句)if语句是基于条件成立才执行相应代码时使用的语句。语法:if(条件) { 条件成立时执行代码}

    做判断(if语句) if语句是基于条件成立才执行相应代码时使用的语句. 语法: if(条件) { 条件成立时执行代码} 注意:if小写,大写字母(IF)会出错! 假设你应聘web前端技术开发岗位,如果 ...

  2. PL/SQL使用游标CURSOR

    一.使用游标 对于DML语句和单行select into ,oracle自动分配隐形游标.处理select返回多行语句,可以使用显式游标. 使用显示游标处理多行数据,也可使用SELECT..BULK ...

  3. Oracle 固定执行计划-使用SPM(Sql Plan Management)固定执行计划

    固定执行计划-使用SPM(Sql Plan Management)固定执行计划 转载自:http://www.lunar2013.com/2016/01/固定执行计划-使用spm%EF%BC%88sq ...

  4. PL/SQL 04 游标 cursor

    --游标 declare  cursor 游标名字  is  查询语句;begin  其他语句;end; --游标的属性%FOUND%NOTFOUND%ISOPEN%ROWCOUNT(当前游标的指针位 ...

  5. 学习使用MS SQL Server游标(CURSOR)

    说实的,使用MS SQL Server这样久,游标一直没有使用过.以前实现相似的功能,都是使用WHILE循环加临时表来实现.刚才有参考网上示例练习写了一下.了解到游标概念与语法. 下面代码示例中,先是 ...

  6. PL/SQL编程—游标

    一.游标的相关概念: 定义: 游标它是一个服务器端的存储区,这个区域提供给用户使用,在这个区域里 存储的是用户通过一个查询语句得到的结果集,用户通过控制这个游标区域当中 的指针 来提取游标中的数据,然 ...

  7. Oracle自动执行任务(存储过程)

    Oracle自动执行任务(存储过程) SQL> variable job number;SQL> begin2 dbms_job.submit(:job,'存储过程名;',sysdate, ...

  8. 查看Oracle正在执行的任务

    select a.program, b.spid, c.sql_text,c.SQL_ID from v$session a, v$process b, v$sqlarea c where a.pad ...

  9. 【SQL Server数据迁移】64位的机器:SQL Server中查询ORACLE的数据

    从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件, 需要用不同的驱动程序来实现. 在64位的机 ...

随机推荐

  1. android studio添加三方jar包

    jar包放项目的libs目录,然后tools,android,sync project with grade files即可.

  2. 简单实例讲解linux的module模块编译步骤

    注:原博文地址http://blog.sina.com.cn/s/blog_4ba5b45e0102v25h.html ---------------------------------------- ...

  3. 设置ulimit值(Linux文件句柄数量)永久生效

    Linux 默认打开文件数linux 默认打开文件数为1024个,通过ulimit -a 可以查看open files修改这个限制可以使用ulimt -SHn 65536永久生效需要进行下面设置:1. ...

  4. 【转】Oracle 表空间与数据文件

    --============================== --Oracle 表空间与数据文件 --============================== /* 一.概念 表空间:是一个或 ...

  5. PLSQL_PLSQL读和写XML文件方式(案例)

    2012-05-01 Created By BaoXinjian

  6. Linux Deepin 2014安装Lenovo LJ2600D驱动

    双11老师给实验室抢了个Lenovo LJ2600D的USB接口打印机,并用旧的HP-1080MFP网络打印服务器连接上了.Windows下就不多说了,官方给的驱动就是针对它的,同学们都用得爽爆了,因 ...

  7. python 多线程抓取动态数据

    利用多线程动态抓取数据,网上也有不少教程,但发现过于繁杂,就不能精简再精简?! 不多解释,直接上代码,基本上还是很好懂的. #!/usr/bin/env python # coding=utf-8 i ...

  8. 用java程序调用ffmpeg执行视频文件格式转换flv

    用java小例题说明更直观:(可以直接编译运行)环境我在windows平台下测试的...需要在e:/下有ffmpeg.exe;mencoder.exe;drv43260.dll;pncrt.dll共4 ...

  9. sqlldr导入数据

    直接在cmd输入sqlldr即可,不需要先输sqlplus. 参考链接:每次提交多少行很重要:http://www.cnblogs.com/wingsless/archive/2012/08/04/2 ...

  10. ASP.NET优化

    源地址:http://www.cnblogs.com/wangjingblogs/archive/2013/02/27/2934706.html http://jingyan.baidu.com/ar ...