Oracle游标提取相关的数据的语法介绍

 我来答
世纪网络17
2022-11-04 · TA获得超过5950个赞
知道小有建树答主
回答量:2426
采纳率:100%
帮助的人:143万
展开全部

  本文主要介绍的是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

lishixinzhi/Article/program/Oracle/201311/18889

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式