ng subsequent updates and deletes. An example follows DECLARE CURSOR c1 IS SELECT ename, job, rowid FROM emp my ename emp.ename TYPE my job emp.job TYPE my rowid UROWID BEGIN OPEN c1 LOOP FETCH c1 INTO my ename, my job, my rowid EXIT WHEN c1 NOTFOUND UPDATE emp SET sal sal 1.05 WHERE rowid my rowid this mimics WHERE CURRENT OF c1 COMMIT END LOOP CLOSE c1 END Be careful. In the last example, the fetched rows are not locked because no FOR UPDATE clause is used. So, other users might unintentionally overwrite your changes. Also, the cursor must have a read consistent view of the data, so rollback segments used in the update are not released until the cursor is closed. This can slow down processing when many rows are updated. The next example shows that you MCSA it exam can use the Microsoft Certification ROWTYPE attribute with cursors that reference the ROWID pseudocolumn DECLARE CURSOR c1 IS SELECT ename, sal, rowid FROM emp emp rec c1 ROWTYPE BEGIN OPEN c1 LOOP FETCH c1 INTO emp rec EXIT WHEN c1 NOTFOUND IF THEN DELETE FROM emp WHERE rowid emp rec.rowid END IF Doing Independent Units of Work with Autonomous Transactions Interaction Between MCSA PL SQL and Oracle 6 53 END LOOP CLOSE c1 END.