PL / SQL无效游标错误

时间:2013-07-11 19:59:25

标签: sql plsql oracle10g

所以我真的不知道为什么我的光标不起作用。 select语句工作正常,所以我不确定为什么SQL服务器会抛出错误。 For循环具有隐式打开和关闭,因此也不应该是问题。有什么想法吗?

DECLARE
   var_lname customer.c_last%TYPE;
   var_fname customer.c_first%TYPE;
   var_addr customer.c_address%TYPE;
   var_phone customer.c_dphone%TYPE;
   CURSOR expl_cursor IS SELECT c_last, c_first, c_address, c_dphone from customer;
   cust_record expl_cursor%ROWTYPE;

BEGIN

   DBMS_OUTPUT.PUT_LINE('ClearWater Traders Mailing List');
   FOR cust_record IN expl_cursor
   LOOP
      FETCH expl_cursor INTO cust_record;
      var_lname := cust_record.c_last;
      var_fname := cust_record.c_first;
      var_addr := cust_record.c_address;
      var_phone := cust_record.c_dphone;
      DBMS_OUTPUT.PUT_LINE(var_lname || ' ' || var_fname || ' ' ||
      var_addr || ' ' || var_phone);
   END LOOP;
END;

这是错误:

第1行的错误: ORA-01001:无效的cur ORA-06512:第15行

1 个答案:

答案 0 :(得分:2)

啊我解决了这个问题。无法在for循环中执行FETCH。由于光标自动递增。