ORA-00060: deadlock detected while waiting for resource is one of the most misunderstood errors

Oracle throws. The two myths that cause the most damage: that it rolled back your transaction (it

didn't — just one statement), and that it's a database tuning problem you fix with a parameter (it

isn't — it's almost always an application bug). Oracle already broke the deadlock for you. Your job is

to read the trace it left, find the two statements that collided, and stop it happening again.