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

Reply via email to