DBA Tips Archive for Oracle


[an error occurred while processing this directive]

No Title

[an error occurred while processing this directive]

by Michael New, MichaelNew@earthlink.net, Gradation LLC



Prior to Oracle9i, the SELECT ... FOR UPDATE statement only enabled you to wait until the lock was released or to exit the operation immediately with an error message when the row you were attempted to select was locked.

Oracle9i has enhanced the SELECT ... FOR UPDATE statement in that you no longer have to be stuck waiting indefinitely. You can now specify the period of time (in seconds) that you can wait for a lock to be released.


The format of the new syntax is:

SQL> SELECT name FROM emp WHERE emp_id < 100 FOR UPDATE WAIT 10; SELECT name FROM emp WHERE emp_id < 100 FOR UPDATE WAIT 10 * ERROR at line 1: ORA-30006: resource busy; acquire with WAIT timeout expired

In the above statement, we are specifying that the statement should wait ten seconds for the lock on the row to be released. This eliminates having to wait indefinitely for a lock to be released; you now have control over establishing an acceptable wait time.

You can still specify that you do not want to wait to acquire a lock by using the NOWAIT clause. If a lock is not immediately available, it returns an error to indicate that you cannot acquire a lock at this time.

About the Author

Jeffrey Hunter is an Oracle Certified Professional, Java Development Certified Professional, Author, and an Oracle ACE. Jeff currently works as a Senior Database Administrator for The DBA Zone, Inc. located in Pittsburgh, Pennsylvania. His work includes advanced performance tuning, Java and PL/SQL programming, developing high availability solutions, capacity planning, database security, and physical / logical database design in a UNIX / Linux server environment. Jeff's other interests include mathematical encryption theory, tutoring advanced mathematics, programming language processors (compilers and interpreters) in Java and C, LDAP, writing web-based database administration tools, and of course Linux. He has been a Sr. Database Administrator and Software Engineer for over 20 years and maintains his own website site at: http://www.iDevelopment.info. Jeff graduated from Stanislaus State University in Turlock, California, with a Bachelor's degree in Computer Science and Mathematics.

Copyright (c) 1998-2018 Jeffrey M. Hunter. All rights reserved.

All articles, scripts and material located at the Internet address of http://www.idevelopment.info is the copyright of Jeffrey M. Hunter and is protected under copyright laws of the United States. This document may not be hosted on any other site without my express, prior, written permission. Application to host any of the material elsewhere can be made by contacting me at jhunter@idevelopment.info.

I have made every effort and taken great care in making sure that the material included on my web site is technically accurate, but I disclaim any and all responsibility for any loss, damage or destruction of data or any other property which may arise from relying on it. I will in no case be liable for any monetary damages arising from such loss, damage or destruction.

Last modified on
Tuesday, 17-Jan-2012 10:02:18 EST
Page Count: 22624