Oracle游标cursor1基础和隐式游标

--指向表行的指针,一次一行,一般向前移动 Resultset
--游标永远代代表的是一行数据。
/*
使用步骤
第一步:声明游标,就像是声明一个变量样。
        游标的关键字就是cursor.
        Declare
            --游标关键字在前面
            Cursor  myCusor is select * from someTable;
        Begin
                //代码
        End;

 第二步:声明游标后并不能直接使用-打开游标
        Declare
            --游标关键字在前面
            Cursor  myCusor is select * from someTable;
        Begin
                Open myCursor;    
        End;
第三步:在遍历中,使用fetch遍历数据
        Declare
            --游标关键字在前面
            Cursor  myCusor is select * from someTable;
        Begin
                Open myCursor;    
                Loop
                    Fetch myCusor into 你声明的变量;
                    --加上一个判断,是否到了行了最后
                    Exit when myCursor%notfound;
                End loop;
        End;
第四步:关闭游标
        Declare
            --游标关键字在前面
            Cursor  myCusor is select * from someTable;
        Begin
                Open myCursor;    
                Loop
                    Fetch myCusor into 你声明的变量;
                    --加上一个判断,是否到了行了最后
                    Exit when myCursor%notfound;
                End loop;
                Close myCursor; - oracle默认情况下,最多只可以开15个游标。
        End;

*/

/*
游标的分类
声明方式:
隐式游标
        所有你在执行sql(CRUD)语句时,oracle都会默认的给你打开一个游标。
        游标名称叫SQL
            它包含以下属性:
               ROWCOUNT – 这个查询或是修改的记录的数量。
               Notfound没有发行现
                
显式游标
            是指用户在declare中显式声明的游标。
    动态的游标
*/
--隐式的游标
select * from EMP1;
/*
30
30
39
200*/
declare
v_count int;
v_found boolean;
begin
DELETE from emp1 where age=30;
--获取行号
v_count:=sql%rowcount;
if not sql%isopen then
SYS.DBMS_OUTPUT.PUT_LINE('xxxx数');
end if;
DBMS_OUTPUT.PUT_LINE('影响行数'||v_count);
end;
/*
匿名块已完成
xxxx数
影响行数2
*/
posted @ 2014-04-22 20:56  夏微风  阅读(419)  评论(0编辑  收藏  举报