知识大全 Oracle游标提取相关的数据的语法介绍

Posted

篇首语:少年乘勇气,百战过乌孙。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle游标提取相关的数据的语法介绍相关的知识,希望对你有一定的参考价值。

Oracle游标提取相关的数据的语法介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

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

   FETCH cursor_name INTO variable[ variable ]

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

  例

   SET SERVERIUTPUT ON

   DECLARE

   v_ename EMP ENAME%TYPE;

   v_salary EMP SALARY%TYPE;

   CURSOR c_emp IS SELECT ename salary FROM emp;

   BEGIN

   OPEN c_emp;

   FETCH c_emp INTO v_ename v_salary;

   DBMS_OUTPUT PUT_LINE( Salary of Employee || v_ename

   || is || v_salary);

   FETCH c_emp INTO v_ename v_salary;

   DBMS_OUTPUT PUT_LINE( Salary of Employee || v_ename

   || is || v_salary);

   FETCH c_emp INTO v_ename v_salary;

   DBMS_OUTPUT PUT_LINE( Salary of Employee || v_ename

   || is || v_salary);

   CLOSE c_emp;

   END

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

   SET SERVERIUTPUT ON

   DECLARE

   v_ename EMP ENAME%TYPE;

   v_salary EMP SALARY%TYPE;

   CURSOR c_emp IS SELECT ename salary FROM emp;

   BEGIN

   OPEN c_emp;

   LOOP

   FETCH c_emp INTO v_ename v_salary;

   EXIT WHEN c_emp%NOTFOUND;

   DBMS_OUTPUT PUT_LINE( Salary of Employee || v_ename

   || is || v_salary);

   END

cha138/Article/program/Oracle/201311/18889

相关参考