>On Tue, 4 Sep 2007 11:19:10 -0700, [1]"Jared Still" <jkstill@xxxxxxxxx> said: >Just curious - what's wrong with 'SELECT FOR UPDATE' ? >-- >Jared Still >Certifiable Oracle DBA and Part Time Perl Evangelist Along the lines of what Jared said, here is an example: Session 1: SQL> update my_emp set empname=upper(empname); 1 row updated. SQL> Session 2: SQL> set serveroutput on size unlimited; SQL> DECLARE 2 row_on_hold VARCHAR2(1); 3 BEGIN 4 SELECT 'Y' INTO row_on_hold 5 FROM my_emp 6 WHERE empno=1 FOR UPDATE OF empname NOWAIT 7 ; 8 dbms_output.put_line('I got hold of this row..........'); 9 EXCEPTION WHEN OTHERS THEN 10 IF sqlcode = -0054 THEN 11 dbms_output.put_line('This row is locked..GO ELSEWHERE'); 12 ELSE 13 dbms_output.put_line('This row is not locked..'); 14 END IF; 15 END; 16 / This row is locked..GO ELSEWHERE PL/SQL procedure successfully completed. SQL> Session 1: SQL> rollback; Rollback complete. SQL> Session 2: SQL> @lck SQL> set serveroutput on size unlimited; SQL> DECLARE 2 row_on_hold VARCHAR2(1); 3 BEGIN 4 SELECT 'Y' INTO row_on_hold 5 FROM my_emp 6 WHERE empno=1 FOR UPDATE OF empname NOWAIT 7 ; 8 dbms_output.put_line('I got hold of this row..........'); 9 EXCEPTION WHEN OTHERS THEN 10 IF sqlcode = -0054 THEN 11 dbms_output.put_line('This row is locked..GO ELSEWHERE'); 12 ELSE 13 dbms_output.put_line('This row is not locked..'); 14 END IF; 15 END; 16 / I got hold of this row.......... PL/SQL procedure successfully completed. SQL> HTH GovindanK References 1. mailto:jkstill@xxxxxxxxx