The 'Snapshot too old' is an oracle problem not a connect problem. Basically, Oracle has committed a lot of data while your query is running and your query gets an error trying to access one of the records that was updated. About the only thing that I have found that can be done in the application is to make sure your query runs as fast as possible, a WHERE NOT EXISTS is not typically a very fast operation in Oracle from my experience. I would recommend tuning your query to run as fast as possible and/or trying to get some changes to the Oracle database at the DBA level.
Here's a web site that explains the snapshot problem: http://home.clara.net/dwotton/dba/snapshot.htm >From this page: "Common recommendations to reduce the possibility of "snapshot too old" are: -Increase the size/number of rollback segments -Do not specify an OPTIMAL size for your rollback segments. -Avoid executing long-running queries when transactions which update the table are also executing. " -----Original Message----- From: Frank Newland [mailto:[EMAIL PROTECTED]] Sent: Friday, March 15, 2002 10:40 AM To: [EMAIL PROTECTED] Subject: dbh connect Are there any $dbh->connect statements I can use to prevent the following error message. "ORA-01555: snapshot too old: rollback segment number 19 with name "R20" too small I'm running a simple 'Where not exists' against an Oracle table of 4Million records. my current $dbh->connect reads as follows $dbh = DBI->connect ( "dbi:Oracle:$oracle_sid", $db_user, $db_password, {PrintError => 0, AutoCommit => 0} ) || die "Failed to connect " ; Thanks, Frank
