Wie update cursor Datensätze mit WHERE CURRENT OF?
Ich bin immer "ORA-01410: Invalid ROWID" - Ausnahme beim ausführen in diesem block. Irgendwelche Ideen, warum?
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;
Jedoch alles funktioniert, wenn die Verwendung FÜR die IN der syntax:
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;
InformationsquelleAutor Centurion | 2012-11-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bewegen Sie den
exit when
vor derupdate
- Sie können nicht aktualisieren, dass etwas nicht existiert.InformationsquelleAutor Mat