If you want to pin down why the deadlock is occurring, Here's an approach that Stefane Faroult suggested to me a couple of years ago.
Connect as sys, and create a pair of DDL triggers that log the contents of x$kgllk and x$kglpn before and after truncate - then reconnect as the relevant user and try the truncate again. A 4020 is likely to be due to a request for a pin (x$kglpn) in exclusive mode when 'something else' is already holding the pin in non-null mode. This may help you to track down what object is causing the problem, and where. Regards Jonathan Lewis http://www.jlcomp.demon.co.uk Now available One-day tutorials: Cost Based Optimisation Trouble-shooting and Tuning Indexing Strategies (see http://www.jlcomp.demon.co.uk/tutorial.html ) ____UK_______March 19th ____UK_______April 8th ____UK_______April 22nd ____USA_(FL)_May 2nd Next dates for the 3-day seminar: (see http://www.jlcomp.demon.co.uk/seminar.html ) ____UK_(Manchester)_May ____USA_(CA, TX)_August The Co-operative Oracle Users' FAQ http://www.jlcomp.demon.co.uk/faq/ind_faq.html ----- Original Message ----- To: "Multiple recipients of list ORACLE-L" <[EMAIL PROTECTED]> Sent: 10 March 2003 14:48 > I am trying to do a TRUNCATE TABLE My_Table but keep getting this error; > > A self-deadlock among DDL and parse locks > is detected. In most cases, this self-deadlock > is handled internally. > This should be reported to Oracle Support > ONLY IF an error is signalled back to the > user on a command-line or screen. > The following information may aid in finding > the problem. > ORA-04020: deadlock detected while trying to lock object DFARNSWORTH.REGION_ZIPS > > This is in my test environment and there should not be anything else locking the table. Any ideas?? > > Thanks, > > Dave > -- -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: Jonathan Lewis INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).