Here's a little test program I use to replicate the issue:
in reply to DBI perpare_cached and statment handle gone bad
When I do the work to EXAMPLE that invalidates the statment handle, my example code returns the following:
my $sth=$dbh->prepare_cached('select count(*) from EXAMPLE');
DBD::Oracle::st execute failed: ORA-00942: table or view does not exist (DBD ERROR: OCIStmtExecute)
DBD::Oracle::st execute failed: ORA-01003: no statement parsed (DBD ERROR: OCIStmtExecute)
What I'd like is for prepare_cached to recover gracefully from these types of intermittent hiccups. Any ideas?