oracle数据库游标的使用

1、游标的概念(cursor):

 系统为用户开辟的一个数据缓冲区,用于存放sql语句的执行结果。在某些情况下,用户需要对磁盘上的多条数据进行处理,游标的使用可以有效避免频繁的数据交换,提供工作效率

2、游标的种类

(1)、隐式游标:

进行DML操作或者使用单行的select查询时使用

游标的属性:
SQL%ROWCOUNT:整型,表示游标执行的DML语句影响数据库中数据的行数

SQL%FOUND:布尔类型,表示插入,删除,更新或者单行查询是否成功

SQL%NOTFOUND:布尔类型,表示的含义与SQL%FOUND相反

SQL%ISOPEN:布尔类型,表示游标是否处于打开状态

 eg:

DECLARE 
--声明一个变量
message INT:=0;
BEGIN
INSERT INTO  student (stu_id, stu_name, stu_sex, stu_age, grade_id)  VALUES(sq_student.nextval,'tom', '0', '18', 1);
IF SQL%FOUND THEN 
DBMS_OUTPUT.PUT_LINE('FOUNT IS TRUE');
ELSE
DBMS_OUTPUT.PUT_LINE(' FOUND IS NOT TRUE');
END IF;
IF SQL%NOTFOUND THEN 
DBMS_OUTPUT.PUT_LINE('NOT FOUND IS TRUE');
ELSE
DBMS_OUTPUT.PUT_LINE('NOT FOUND IS FALSE');
END IF;
IF SQL%ISOPEN  THEN 
DBMS_OUTPUT.PUT_LINE('ISOPEN IS TRUE');
ELSE
DBMS_OUTPUT.PUT_LINE('ISOPEN IS NOT TRUE');
END IF;
message:=SQL%ROWCOUNT;
DBMS_OUTPUT.PUT_LINE(message);
END;

(2)、显示游标

显示游标的使用主要分为以下四个步骤:

1)、声明游标:DECLARE CURSOR 游标名[(参数 参数类型)] IS SELECT 语句

注:游标的参数是可选的部分,如果有参数打开游标时一定要传入对应的实际参数值 

2)、打开游标:OPNE CUROSR [(参数值)]

打开游标的时候,select的查询结果值就会传到对应的游标工作区 

3)、提取数据:FETCH 游标名 INTO 变量名 or FETCH 游标名 into 记录变量

记录变量的声明方式:

变量名 表名|游标名%ROWTYPE; 
其中的表必须存在,游标名也必须先定义。

4)、关闭游标:CLOSE CURSOR

eg:

DECLARE
SNAME VARCHAR(20);
SAGE NUMBER(3);
CURSOR S_CURSOR(SID NUMBER)  IS SELECT STU.STU_NAME,STU.STU_AGE  FROM STUDENT STU WHERE STU.STU_ID=SID;
BEGIN 
OPEN S_CURSOR(25);
FETCH S_CURSOR INTO SNAME,SAGE;
DBMS_OUTPUT.PUT_LINE(SNAME||','||SAGE);
CLOSE S_CURSOR;
END;

 

 

 

 

 

 

 

 

 

显示游标: 

 

转载于:https://www.cnblogs.com/Auto-passion/p/7250093.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值