The OP is using automatic undo management (the rollback segment name's the giveaway - "_SYSSMU19$") and so attempts to use manual rollback segments will either fail or be silently ignored - there's a setting to suppress the errors for backwards compatibility.
-- Andy Hassall <[EMAIL PROTECTED]> / Space: disk usage analysis tool <http://www.andyh.co.uk> / <http://www.andyhsoftware.co.uk/space> > -----Original Message----- > From: David N Murray [mailto:[EMAIL PROTECTED] > Sent: 24 September 2004 22:27 > To: Rob Benton > Cc: [EMAIL PROTECTED] > Subject: Re: Error on large select statement > > For version info print $DBI::Version and $DBD::Oracle::VERSION. > > $ oerr ora 1555 > 01555, 00000, "snapshot too old: rollback segment number %s > with name \"%s\" too small" > // *Cause: rollback records needed by a reader for consistent read are > // overwritten by other writers > // *Action: Use larger rollback segments > > $dbh->do("set transaction use rollback segment a_really_big_segment"); > $select->execute(); > > HTH, > Dave > > > On Sep 24, Rob Benton scribed: > > > Got DBI version 1.3.5 (not sure which version DBD::Oracle. > Is there a > > way to tell?) on RedHat AS 2.1. > > > > I need some advice. I'm doing an oracle query on a table > that has over > > 23 million records and I keep running into this error near > the end. I'm > > not doing any updates, only a select. > > > > PrintError, RaiseError are on and AutoCommit is off. > > > > DBD::Oracle::st fetchrow_array failed: ORA-01555: snapshot too old: > > rollback segment number 19 with name "_SYSSMU19$" too small > (DBD ERROR: > > OCIStmtFetch) at ./group_bb.pl line 144. > >
