Ora学习笔记-游标的使用

Ora学习笔记-游标的使用-06-05-24
/*
          **************************************
          *          Oracle 游标示例                               *
          **************************************
*/
--(1)声名游标 用一个查询定义游标的行和列
DECLARE
CURSOR nextRecodeRow IS
       SELECT * FROM JHJ_DZ_TEST_RESULT
              WHERE JHJX=41
                    ORDER BY YWMC;    
      
--用%ROWTYPE属性声名的记录变量自动拥有对应于所引用镖的字段的字段名
RecodeRow_DZ JHJ_DZ_TEST_RESULT%ROWTYPE;
--声名带参数的游标
CURSOR nextRecodeRow_with_var (JHJDM INTEGER) IS
       SELECT * FROM JHJ_XYW_TEST_RESULT
                WHERE JHJX=JHJDM
                      ORDER BY YWMC,JX,XH; 
                     
RecodeRow_XYW JHJ_XYW_TEST_RESULT%ROWTYPE;                   
BEGIN
     DBMS_OUTPUT.put_line('----------以下显示普通游标记录-----------');
    
     --(2) 打开游标
     OPEN nextRecodeRow;
     --(3) 用 FETCH ... INTO ... 从游标中取出行
     FETCH nextRecodeRow INTO RecodeRow_DZ;
     WHILE nextRecodeRow%FOUND LOOP
           DBMS_OUTPUT.put_line(RecodeRow_DZ.ywmc||' == '||RecodeRow_DZ.jhjzl);
           FETCH nextRecodeRow INTO RecodeRow_DZ;
     END LOOP;
     --(4) 用 CLOSE 关闭游标
     CLOSE nextRecodeRow;
     DBMS_OUTPUT.put_line('----------普通游标记录显示完毕-----------');
    
    
     DBMS_OUTPUT.put_line('**********以下显示游标FOR记录************');
    
     --游标FOR循环自动声名一个能够接受游标中的行,
     --打开游标,从游标中取出行以及在游标中的最后一行取出后关闭游标的变量或记录
     FOR RecodeRow_DZ IN nextRecodeRow LOOP
         DBMS_OUTPUT.put_line(RecodeRow_DZ.jhjx||' == '||RecodeRow_DZ.jx);
     END LOOP;
    
     DBMS_OUTPUT.put_line('**********游标FOR记录显示完毕************');
    
    
     DBMS_OUTPUT.put_line('==========以下显示带参游标记录===========');
    
     --通过游标FOR调用带参数的游标
     FOR RecodeRow_XYW IN nextRecodeRow_with_var(51) LOOP
         DBMS_OUTPUT.put_line(RecodeRow_XYW.jx||' ** '||RecodeRow_XYW.xh);
     END LOOP; 
      
     DBMS_OUTPUT.put_line('==========带参游标记录显示完毕===========');

END;
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值