|
-
My take is that if you have a long running transaction Oracle will maintain a read consistent view of the database from when the transactions started. Other transactions will continue to occur at the same time that this long running transaction is happening. At some point Oracle may find out that with the amount of redo being generated and the size of the undo tablespace that it is no longer able to maintain that read consistent view of the data and will throw the 0155 error and rollback any updates that me have already occurred. So the question becomes how do you do large dml transactions on a running database without getting this error, and the answer is to use pl/sql collections to hold the data and instead do a lot of small transactions and commit after each one. This is different from just using a cursor because the read consistent view is maintained in the collection away from the tables.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|