Oracle 如何使用的当前位置更新光标记录?

Oracle 如何使用的当前位置更新光标记录?,oracle,plsql,cursor,Oracle,Plsql,Cursor,执行此块时,我收到ORA-01410:无效的ROWID异常。你知道为什么吗 DECLARE CURSOR c_orders IS SELECT * from orders FOR UPDATE OF no; v_order_record c_orders%ROWTYPE; BEGIN OPEN c_orders; LOOP FETCH c_orders INTO v_order_record; UPDATE orders SET no = 11 WHER

执行此块时,我收到ORA-01410:无效的ROWID异常。你知道为什么吗

DECLARE
  CURSOR c_orders IS
    SELECT * from orders FOR UPDATE OF no;
  v_order_record c_orders%ROWTYPE;
BEGIN
  OPEN c_orders; 
  LOOP
    FETCH c_orders INTO v_order_record;
    UPDATE orders SET no = 11 WHERE CURRENT OF c_orders;
    EXIT WHEN c_orders%NOTFOUND; 
  END LOOP;  
  CLOSE c_orders; 
END; 
但是,如果在语法中使用FOR,则一切都可以工作:

DECLARE
  CURSOR c_orders IS
    SELECT * from orders FOR UPDATE OF no;
BEGIN
  FOR rec IN c_orders
  LOOP
    UPDATE orders SET no = 11 WHERE CURRENT OF c_orders;
  END LOOP; 
END; 
在更新之前将出口移动到何时-您无法更新不存在的内容。

在更新之前将出口移动到何时-您无法更新不存在的内容