On Thu, Jul 15, 2004 at 04:50:07PM -0700, Edward Peschko wrote:
> hey all,
> 
> How do you make errors that are otherwise fatal, warnings?
> 
> I'm getting an oracle error which I think is a oracle bug (01801), and only 
> effects one row of an otherwise large, large table. I'd like to be able to trap
> the error, skip the row, and load the rest of the table.. eval doesn't work, because
> 
> eval
> {
>       while ($line = $sth->fetchrow_arrayref())
>       {
>               ...
>       }
> }
> 
> kills the whole loop,

Setting $sth->{RaiseError} = 0; will prevent the loop being _killed_
but not prevent it exiting.

On the other hand, just because the fetchrow_arrayref() returned false
doesn't mean you can't fetch more rows from it. Something like this
should work:

        $sth->{RaiseError} = 0;
        do {
            while ($line = $sth->fetchrow_arrayref()) {
                ...
            }
        } while ($sth->{Active});
        

Tim.

Reply via email to