日期:2014-05-17  浏览次数:20804 次

关于为什么要用游标的一个例子的问题
我数据库开发是新手,最近在看oracle plsqp从入门到精通,。。。。。。代码10.19演示了如何使用游标删除EMP表中员工编号为7369的员工记录
DECLAGE
 
     CURSOR  emp_cur (p_empno IN NUMBER)
     IS
     SELECT * 
         FROM emp
         WHERE  empno = p_empno;
     FOR UPDATE;
BEGIN
    FOR emp_row IN  emp_cur LOOP
       DELETE FROM emp
      WHERE CURRENT OF emp_cur;

   END LOOP;
   COMMIT;
END;




       这个例子为什么这么繁琐,它是仅仅为了演示游标的用法吗,还是有什么优越的地方?与简单的一个单行操作相比。是把一个行通过select放到游标(指针)中,以后就可以更方便地对地对这个指针进行不同的操作吗?但是后面为什么要用LOOP呢,明明就是一行啊,有必要路破么?

------解决方案--------------------
就是为了演示而已,初学者语法都不明白,给你一个复杂的例子你就绕到里面去了。
------解决方案--------------------
实际肯定是演示 利用游标更新或删除的一种语法WHERE CURRENT OF。。
表示更新删除当前行。

不过这个应该用的比较少,了解即可。