The following, if executed from within a Perl script, will hang
indefinitely while trying to do the 'execute()' statement.
my $sth = DBH()->prepare( "UPDATE ldb_ad_t SET most_recent_print_date =
'30-SEP-01' WHERE lid = 2" );
$sth->execute();
DBH()->commit();
DBH()->disconnect();
Does anyone have any idea where to start looking for how to solve this?
DBH() just returns a database handle; I verified that the handle was good
by having the script issue several statements, including an INSERT,
through it; they all work fine. When I issued an UPDATE (different from
the one below), it also resulted in a freeze.
I can take the text of this UPDATE, issue it through sqlplus, and it works
fine.
Here is all the information I can think of that might be relevant:
Machine the script is on:
uname -a: OSF1 ahnkenaten V4.0 1229 alpha
DBI version: 1.18
Oracle client version: 8.0.5
Machine the DB is on:
uname -a: SunOS thor 5.6 Generic_105181-21 sun4u sparc SUNW,Ultra-60
Oracle server version: 8.1.6
The output of DBI->trace(2, "trace.log") is below. As far as I can tell,
it just says that things were going along fine until the execute
statement, and then the user (me) cancelled the operation...which I did,
after waiting two or three minutes for it.
DBI 1.18-nothread dispatch trace level set to 2
->DBI->connect(dbi:Oracle:host=thor[snip];sid=[snip];port=[snip],
LDBU, ****, HASH(0x14000f1e0))
-> DBI->install_driver(Oracle) for perl=5.006001 pid=27401 ruid=220
euid=220
install_driver: DBD::Oracle version 1.07 loaded from
/usr/local/lib/perl5/site_perl/5.6.1/alpha-dec_osf/DBD/Oracle.pm
<- install_driver= DBI::dr=HASH(0x140128220)
-> connect for DBD::Oracle::dr (DBI::dr=HASH(0x140128220)~0x1400169a0
'host=thor[snip];sid=[snip];port=[snip]' 'LDBU' **** HASH(0x1400e\
f060))
connect using
'(DESCRIPTION=(ADDRESS=(HOST=thor[snip])(PROTOCOL=tcp)(PORT=[snip]))(CONNECT_DATA=(SID=[snip])))'
<- connect= DBI::db=HASH\
(0x1401aa350) at DBI.pm line 416.
-> STORE for DBD::Oracle::db (DBI::db=HASH(0x140016990)~INNER
'RaiseError' 1)
<- STORE= 1 at DBI.pm line 441.
-> STORE for DBD::Oracle::db (DBI::db=HASH(0x140016990)~INNER
'PrintError' 1)
<- STORE= 1 at DBI.pm line 441.
-> STORE for DBD::Oracle::db (DBI::db=HASH(0x140016990)~INNER
'AutoCommit' 1)
<- STORE= 1 at DBI.pm line 441.
<- connect= DBI::db=HASH(0x1401aa350)
-> prepare for DBD::Oracle::db (DBI::db=HASH(0x1401aa350)~0x140016990
'UPDATE ldb_ad_t SET most_recent_print_date = '30-SEP-01' WHERE \
lid = 2')
<- prepare= DBI::st=HASH(0x140016ac0) at spike.pl line 26.
-> execute for DBD::Oracle::st (DBI::st=HASH(0x140016ac0)~0x1400ef0a0)
dbd_st_execute UPDATE (out0, lob0)...
!! ERROR: 1013 'ORA-01013: user requested cancel of current operation
(DBD ERROR: OCIStmtExecute)'
<- execute= undef at spike.pl line 27.
-> DESTROY for DBD::Oracle::st (DBI::st=HASH(0x1400ef0a0)~INNER)
<- DESTROY= undef.
-- DBI::END
-> disconnect_all for DBD::Oracle::dr
(DBI::dr=HASH(0x140128220)~0x1400169a0)
<- disconnect_all= '' at DBI.pm line 458.
-> DESTROY in DBD::_::common for DBD::Oracle::dr
(DBI::dr=HASH(0x1400169a0)~INNER)
<- DESTROY= undef during global destruction.
-> DESTROY for DBD::Oracle::db (DBI::db=HASH(0x140016990)~INNER)
<- DESTROY= undef during global destruction.
Baffled and perplexed,
Dave