有以下语句:
DECLARE
   CURSOR emp_cursor IS SELECT ename,sal FROM emp FOR UPDATE;
   emp_record emp_cursor%ROWTYPE;
BEGIN
OPEN emp_cursor;
  LOOP
     FETCH emp_cursor INTO emp_record;
     EXIT WHEN emp_cursor%NOTFOUND;
     ......
  END LOOP;
END
   这里面 emp_record emp_cursor%ROWTYPE;这一句是什么意思啊?特别是%后面跟上ROWTYPE搞不懂哦
  还有EXIT WHEN emp_cursor%NOTFOUND也是%跟上NOTFOUND,什么意思呢?像ROWTRYE和NOTFOUND这些东西是程序里面直接就可以用的变量吗?
   请大家指教 谢谢了
哦 还有个问题:select ename INTO name from emp where empno=&no;
no 应该是一个定义好了的变量 ,那&no什么意思呢????

解决方案 »

  1.   

    emp_record emp_cursor%ROWTYPE 代表emp_record 是emp_cursor 记录型变量.
    这样可以避免表发生变化时,不用修改过程.EXIT WHEN emp_cursor%NOTFOUND 当没有发现游标记录时退出
    &no什么意思呢 是宏变量,可以定义.
      

  2.   

    emp_record emp_cursor%ROWTYPE 这样就算数据改变了类型也不用更改程序,可以根据数据自动对应变量类型。EXIT WHEN emp_cursor%NOTFOUND 游标读完数据就退出,可以直接使用。&no是一个变量,如:select * from all_objects where object_name = &n 要求收入数据。