The program is based on the EMPLOYEES table in HR Schema.
DECLARE
CURSOR C1 IS
SELECT * FROM EMPLOYEES WHERE DEPARTMENT_ID = 60
FOR UPDATE;
BEGIN
SAVEPOINT TX_START;
FOR RC IN C1 LOOP
DBMS_OUTPUT.PUT_LINE('Fetching record ' || RC.LAST_NAME);
IF RC.SALARY > 5000 THEN
UPDATE EMPLOYEES SET SALARY = SALARY*1.1 WHERE CURRENT OF C1;
END IF;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK TO TX_START;
DBMS_OUTPUT.PUT_LINE(SQLERRM);
RAISE;
END;
/