zoukankan      html  css  js  c++  java
  • 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
    */
  • 相关阅读:
    功能检查和降级
    蓄水池问题
    Linux删除大于/小于固定大小的文件等
    理解Faster-RCNN 中的Anchor
    【转】DBSCAN密度聚类算法
    ROC曲线和PR曲线
    LSTM比较RNN
    【转】ROI Pooling
    【转】VGG网络结构及参数
    面试知识点准备(各方面)
  • 原文地址:https://www.cnblogs.com/xiaweifeng/p/3681434.html
Copyright © 2011-2022 走看看