Fetching Across Commits
DECLARE
-- if "FOR UPDATE OF salary" is included on following line, an error is raised
CURSOR c1 IS
SELECT *
FROM employees;
emp_rec employees%ROWTYPE;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO emp_rec; -- FETCH fails on the second iteration with FOR UPDATE
EXIT WHEN c1%NOTFOUND;
IF emp_rec.employee_id = 105 THEN
UPDATE employees
SET salary = salary * 1.05
WHERE employee_id = 105;
END IF;
COMMIT; -- releases locks
END LOOP;
END;
/
0 comments:
Post a Comment