1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

Oracle游标的打开与关闭

2022-11-24 | 数据库 | admin | 671°c
A+ A-

以下的内容是对Oracle游标的介绍。以Oracle显示游标为主,本文讲述了如何打开Oracle游标,以及想关的实际操作,如果你对其相关的实际操作有兴趣了解的话,以下的文章将会给你提供相关的知识。

打开Oracle游标

使用游标中的值之前应该首先dewengz打开游标,打开游标初始化查询处理。打开游标的语法是:

OPENcursor_name

cursor_name是在声明部分定义的游标名。

例:

OPENC_EMP;

关闭Oracle游标

语法:

CLOSEcursor_name

例:

CLOSEC_EMP;

关闭Oracle游标

从游标得到一行数据使用FETCH命令。每一次提取数据后,游标都指向结果集的下一行。语法如下:

FETCHcursor_nameINTOvariable[,variable,...]

对于SELECT定义的Oracle游标的每一列,FETCH变量列表都应该有一个变量与之相对应,变量的类型也要相同。

例:

SETSERVERIUTPUTON 
DECLARE 
v_enameEMP.ENAME%TYPE; 
v_salaryEMP.SALARY%TYPE; 
CURSORc_empISSELECTename,salaryFROMemp; 
BEGIN 
OPENc_emp; 
FETCHc_empINTOv_ename,v_salary; 
DBMS_OUTPUT.PUT_LINE('SalaryofEmployee'||v_ename 
||'is'||v_salary); 
FETCHc_empINTOv_ename,v_salary; 
DBMS_OUTPUT.PUT_LINE('SalaryofEmployee'||v_ename 
||'is'||v_salary); 
FETCHc_empINTOv_ename,v_salary; 
DBMS_OUTPUT.PUT_LINE('SalaryofEmployee'||v_ename 
||'is'||v_salary); 
CLOSEc_emp; 
END

这段代码无疑是非常麻烦的,如果有多行返回结果,可以使用循环并用Oracle游标属性为结束循环的条件,以这种方式提取数据,程序的可读性和简洁性都大为提高,下面我们使用循环重新写上面的程序:

SETSERVERIUTPUTON 
DECLARE 
v_enameEMP.ENAME%TYPE; 
v_salaryEMP.SALARY%TYPE; 
CURSORc_empISSELECTename,salaryFROMemp; 
BEGIN 
OPENc_emp; 
LOOP 
FETCHc_empINTOv_ename,v_salary; 
EXITWHENc_emp%NOTFOUND; 
DBMS_OUTPUT.PUT_LINE('SalaryofEmployee'||v_ename 
||'is'||v_salary); 
END

本文来源:1818IP

本文地址:https://www.1818ip.com/post/11375.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。