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

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

君子好学,自强不息!

本文主要介绍的是Oracle游标提取相关的数据的实际操作方案,首先我们要从Oracle游标中得到一行相关的数据,我个人提议你使用FETCH命令。当每一次提取数据后,Oracle游标都指向结果集的下一行。语法如下:

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/11376.html

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

发表评论

必填

选填

选填

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