(Sorry for the bad quote, don't have the previous message.)
On Thu, 07 Jan 2010 04:12:42 +0100, Xho Jingleheimerschmidt
As long as you do not need CPAN modules which require 5.8 or newer, and as
long as you do not work with Unicode, perl 5.6 is fine, especially
together with Oracle.
This finished the perl specific part of the question, nevertheless:
No, it does not hang. It merely waits on a lock (hard to tell which one
without knowing what your perl script does; if you need to know, then
Google will quickly turn up SQL queries you can use to find out which
particular kind of lock it is).
Oracle is extremely robust in respect to "hanging" - it usually
automatically and immediately detects real hangs (deadlocks) and aborts
one of the involved transactions with an error.
The only kind of "hanging" you will experience is the one you have found:
one transaction is being kept open (i.e., neither a rollback or a commit
happens), and while it does, it can hold certain locks. Although in
Oracle, you're lucky in that there are only very few occasions where you
actually have to wait on another transaction. It would be interesting to
know what exactly your perl script is trying to do.
It does not make sense to ask the question like this. The answer to this
particular question is "no" simply because there is no way in Oracle to
influence locking/transaction behaviour in regard to a particular DML
statement (i.e., specific for DELETE).
And on another level, the answer is also "no", because there *is* a reason
why Oracle locks there. Oracle is not like other DBs that lock everything
"just in case"; if locks do happen, there is a good reason, and usually by
avoiding the lock, you are not doing yourself a favour at all.
... but be sure to understand what it does (towards the original poster).
It *will* get rid of your current problem, but maybe not in the way you
want/expect to, and it can burn you later.