笔记081121 游标(cursor)和存储过程(procedure)

本文详细介绍了Oracle数据库中的游标概念和用法,包括如何声明、打开、关闭游标,以及如何在游标中处理数据。此外,还展示了如何创建和执行存储过程,包括带参数的游标和存储过程的示例,以及如何在存储过程中更新数据。通过这些实例,读者可以深入理解Oracle数据库中的游标和存储过程操作。
摘要由CSDN通过智能技术生成
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
创建一个游标

SQL> edit;
已写入 file afiedt.buf

  1  DECLARE
  2  CURSOR mycur IS
  3  SELECT * FROM STUDENT;
  4  myrecode student%ROWTYPE;
  5  BEGIN
  6  OPEN mycur;
  7  FETCH mycur INTO myrecode;
  8  WHILE mycur%FOUND LOOP
  9  DBMS_OUTPUT.PUT_LINE('the data is : '||myrecode.sno||myrecode.sname);
 10  FETCH mycur INTO myrecode;
 11  END LOOP;
 12  CLOSE mycur;
 13* END;
SQL> /

PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SET SERVEROUTPUT ON SIZE 10000

SQL> SET SERVEROUTPUT ON SIZE 10000
SQL> /
the data is : 01062401揍晔                                                     
the data is : 01062402黄费用                                                   
the data is : 01062403卡烂                                                     
the data is : 01062404住没                                                     
the data is : 01062405没猪                                                     
the data is : 01062406张故乡                                                   
the data is : 01062407刘晔                                                     
the data is : 01062408张晔                                                     
the data is : 01062101揍晔                                                     
the data is : 01062102黄费用                                                   
the data is : 01062103卡烂                                                     
the data is : 01062104住没                                                     
the data is : 01062105没猪                                                     
the data is : 01062106张故乡                                                   
the data is : 01062107刘晔                                                     
the data is : 01062108张晔                                                     

PL/SQL 过程已成功完成。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```
一个含有参数的游标

SQL> EDIT
已写入 file afiedt.buf

  1  DECLARE
  2  CURSOR mycur(ID varchar2) IS
  3  SELECT SNAME FROM STUDENT WHERE SNO = ID;
  4  myrecode STUDENT.SNAME%TYPE;
  5  BEGIN
  6  OPEN mycur('01062104');
  7  LOOP
  8  FETCH mycur INTO myrecode;
  9  EXIT WHEN mycur%NOTFOUND;
 10  DBMS_OUTPUT.PUT_LINE('SNAME IS  '||myrecode);
 11  END LOOP;
 12  CLOSE mycur;
 13* END;
SQL> /
SNAME IS  住没                                                                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值