I have some questions on "select for Update" 1. If i do a "select for Update" on a table for a row (row identified by the key) & i donot do any update or commit or rollback, will the row stay locked for ever? 2. If i do "Select col1 from TAble1 for Update where..... ". In this case is only col1 for that row being locked, or is the whole row being locked?
Please note that Database involved in Oracle.. And the server side code is in Java
It will be "row" lock in oracle. You can't lock just one column. And regarding the other question on record being locked when you don't perform any operation, the JDBC/SQL connection will timeout at some point either based on the DB server or JDBC setting and the JDBC driver will implicitly either "rollback" or "commit" based on the JDBC driver type (XA & Non XA connection). There is no way you will end up locking the row forever.