Hemant, The transaction is started only when you actually change a row! By transaction started I mean that a transaction slot is allocated from undo segment header block and a transaction state object is created (and TX lock is taken). If no rows are changed by the DML statement, all you have is a TM lock (DML lock) on the object, but no transaction. Tanel Poder http://blog.tanelpoder.com On Thu, Oct 29, 2009 at 12:12 AM, Hemant K Chitale <hkchital@xxxxxxxxxxxxxx>wrote: > > The transaction is "defined" when the DML starts. It doesn't matter if it > ends up deleting 1million rows or 0rows. It is still a transaction holding > a Transaction Lock. This prevents DDL on the table. > > Hemant K Chitale > > At 05:09 AM Wednesday, you wrote: > >> Hello gurus, >> >> >> When session1 deleted 0 records, it should not be placing any locks on >> the table correct? I do not understand why I got the error. Am I >> missing some basic concept? >> >> When I did a rollback on the session1 then session2 was able to >> truncate the table. >> >> Thanks >> Deen >> > > > > > > > > > -- > //www.freelists.org/webpage/oracle-l > > > -- Tanel Poder http://blog.tanelpoder.com