zoukankan      html  css  js  c++  java
  • oracle中的游标类型

    数据库中的游标(以下内容以Oracle为例):
    
        游标是sql的一个内存工作区,由系统或用户以变量的形式定义
    	游标的作用就是用于临时存储从数据库中提取的数据块,通俗的讲游标就是一个结果集;
    	
        游标的属性:
    		%found:用于检测游标结果集是否存在数据,如果存在,则返回true;
    		%notfound:用于检测游标结果集是否存在数据,如果不存在,则返回true;
    		%isopen:用于检测游标是否打开,如果打开,则返回true;
    		%rowcount:用于返回已提取的实际行数;例,当提取5行数据时关闭游标;
    
        常见游标分类:
            显式游标、隐式游标
            
        显式游标的定义步骤:
            声明游标 declare cursor cursor_name[(parameter_name datatype)] is select_statement
    				  cursor_name emp%rowtype;
    		打开游标 open cursor_name
    		提取数据 fetch cursor_name into variable1...
    			循环提取:
    				loop
    				    exit when cursor_name%notfound
    				end loop; 
    				----------------------------------或者
    				while cursor_name%found loop
    	
    				end loop;				
    		关闭游标 close cursor_name
    		
        隐式游标:由系统隐含创建的游标,主要用于非查询语句;隐式游标的名字为sql,这是由oracle系统定义的;系统会自动打开游标、提取数据、关闭游标等操作;
    
    		主要应用于:DML操作和select...into...的单行查询语句;
    
    		隐式游标的属性:通过sql游标名总是只能访问前一个DML操作或单行select操作的游标属性;
    			sql%found:为true时,表示DML或单行SELECT操作成功
    			sql%notfound
    			sql%isopen:DML操作执行过程中,为true;结束为false;
    			sql%rowcound:DML成功执行后的数据的行数;
    			
            例:根据用户输入的员工号,更新指定员工的工资(+100);
    		begin
    		    DML操作语句;
    		    if sql%found then
    			执行语句并提交事务;
    		    else
    			执行语句并回滚事务;
    		    end if;
    		end;
  • 相关阅读:
    贝叶斯模型
    java的移位和异或运算
    windows下xgboost安装到python
    bagging and boosting
    SVM处理多分类问题
    GO语言语法入门
    [转自SA]浅谈nginx的工作原理和使用
    多线程编程-- part 9 信号量:Semaphore
    多线程编程-- part 8 CyclicBarrier
    多线程编程-- part 7 CountDownLatch
  • 原文地址:https://www.cnblogs.com/qfchen/p/11059415.html
Copyright © 2011-2022 走看看