oracel中对游标的操作

原创 2012年03月26日 18:18:23
1、游标是从数据表中提取出来的数据,以临时表的形式存放在内存中
2、游标
                 定义游标:CURSOR   游标名   IS    SELECT   查询语句
                                     *  游标定义之后,在使用前必须通过“OPEN”打开游标。
                 打开游标OPEN 游标名
                                    将符合条件的记录送入内存
                                    将指针指向第一条记录
 
 
                例1      
             declare
                              cursor mycursor is select * from test ;  
               begin
                           open mycursor; 
               end;
 
        提取数据
                          FETCH 游标名 INTO 变量名1,变量名2……
                                           
                          FETCH  游标名 INTO 记录型变量名
        使用完要关闭游标
                
              close   游标名字
 
 
3、游标状态
  以游标  SQL 为例
SQL%ISOPEN返回的类型为布尔型,判断游标是否被打开,如果打开%ISOPEN等于true,否则等于false,即执行过程中为真,结束后为假。

SQL%NOTFOUND返回值为布尔型,判断游标所在的行是否有效,如果有效,则%FOUNDD等于true,否则等于false,即与%FOUND属性返回值相反。

SQL%FOUND返回值的类型为布尔型,值为TRUE代表插入删除更新或单行查询操作成功

SQL%ROWCOUNT返回值类型为整型,返回当前位置为止游标读取的记录行数,即成功执行的数据行数。

SQL%rowtype   获取一条记录类型

 

 

示例代码如下:

  例子1;  
declare
   cursor SQL    is select * from test ;  
   currecord    SQL%rowtype ;        //获取这一行记录的类型
  begin
  open mycursor;                //打开游标
  fetch mycursor into currecord ;    // 往下下移动游标
  dbms_output.PUT_LINE(to_char(currecord.num));                //输出游标信息
  close mycursor;
end;
 
 
例子2;
 
declare
    cursor mycursor is select * from emp ;  
    currecord mycursor%rowtype ;
begin
    open mycursor;
    loop
        fetch mycursor into currecord ;
        exit when mycursor%notfound;
        dbms_output.put_line(mycursor%rowcount);
        dbms_output.put_line(currecord.ename);
    end loop;
    close mycursor;
end;
 
 
 
 

相关文章推荐

oracel出现超打开游标的最大值原因及解决办法

错误类型:ORA-01000: maximum open cursors exceeded  超出打开游标的最大数、   原因分析:Java代码的时候,createStatement和prepareS...

Oracel集合操作操作符:union(并运算),unionAll,intersect(交运算),minus(差运算)

SQL集合操作操作符:union(并运算),unionAll,intersect(交运算),minus(差运算) 说明:本文为本人笔记,不足之处,请谅解。如有错误,欢迎指出。 1.unio...

了解Oracel中的表格中的操作

写在前面的话: Oracle:表格是创建在用户方案中,而非直接属于数据库! Sqlserver:表格直接属于数据库! 一,表格的创建: 关键字:create creat...

Oracel Service Bus 部署操作手册

  • 2014年03月07日 17:04
  • 1.79MB
  • 下载

数据库-DBA标准操作手册 Oracel MySQL

  • 2017年06月30日 13:57
  • 1.22MB
  • 下载

python中操作数据库中游标的使用方法

cursor就是一个Cursor对象,这个cursor是一个实现了迭代器(def__iter__())和生成器(yield)的MySQLdb对象,这个时候cursor中还没有数据,只有等到fetcho...

Mysql游标(循环操作)

  • 2016年03月29日 15:09
  • 872B
  • 下载

游标的创建及操作

  • 2013年12月19日 01:42
  • 2KB
  • 下载

在SqlServer存储过程中使用Cursor(游标)操作记录

1. 为何使用游标:       使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记...

在SQLSERVER2005下操作游标

  • 2012年11月01日 16:15
  • 14KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracel中对游标的操作
举报原因:
原因补充:

(最多只允许输入30个字)