关闭

[置顶] oracel中对游标的操作

313人阅读 评论(0) 收藏 举报
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;
 
 
 
 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10422次
    • 积分:206
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档