以下的内容是对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

上述的相关内容就是对Oracle游标的具体操作的描述,希望会给你带来一些帮助在此方面。

文章出自: http://www.programbbs.com/doc/class10-3.htm

【编辑推荐】

    Oracle 语句的优化规则中的相关项目Oracle实例如何创建?Oracle sql 性能如何进行调整Oracle管理员用户是什么?Oracle In-Memory Undo特性浅谈