Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: HELP ORA-01555 - snapshot too old.....

Re: HELP ORA-01555 - snapshot too old.....

From: Sybrand Bakker <postbus_at_sybrandb.demon.nl>
Date: Wed, 26 Jun 2002 17:23:11 +0200
Message-ID: <uhjnoq9qlg6515@corp.supernews.com>

"schponk_at_Weurk" <schponk_at_wanadoo.fr> wrote in message news:afcke1$beb$1_at_reader1.imaginet.fr...
> Hello !
> in a PL/SQL procedure, i've got a problem........... withe this ORA-01555
>
> in my procedure i've got :
>
> an update in a loop, this loop is conditionned by a cursor.
> the commit is, of course, before the end of the loop...
>
> a max of 80 Mb is commited in a loop.
>
> my rollback segment : 3 Gb.......... with an initial of 195
> Mb...................
>
> and I wonder why the ORA-01555 occurs..................................
>
> Thanks a lot for your help !!!!!!!!!!!
>
> ;oD
>
>

Because you commit in the loop.
You have a long running transaction, the before image of your select goes to the rollback segment.
You commit.
At that point the data is 'released', candidate to be overwritten. However, you are still selecting from the read consistent image of your select.
So once the select can't reconstruct the read consistent data anymore because these have been overwritten by subsequent transactions (whether your's or others).........

Bingo

Obviously you should commit outside the loop.

There are loads of materials on the web and in the archives of this group on ora-1555.
Please always research the archives.

Regards

--
Sybrand Bakker
Senior Oracle DBA

to reply remove '-verwijderdit' from my e-mail address
Received on Wed Jun 26 2002 - 10:23:11 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US