Oracle will not let you drop a rollback segment if there are active transactions using 
it. However, it will allow you to offline the segment and no new transactions can use 
it. I don't recall the exact status in v$rollstat, but I think it may say pending 
offline.

As for the commit across cursors, the minute you commit, your transaction has ended, 
even if the cursor is still open. When you issue the next statement, you start a new 
transaction, which should assign you to a new rbs. The one you were using is still 
offline. Of course, if you online/assign/offline the rbs after each commit, you are 
reusing the rbs. I have not tested this, so I may be wrong (Thoughts, Kirti?). 
However, you may step on your own "free segment." Additionally, during the time
period of the online/assign/offline, there is a chance that another transaction will 
be assigned to the rbs. 

Daniel

Thomas Day wrote:
> 
> How will you make sure that there are no active segments in your current
> rollback segments before you remove the datafiles with the OS?  Even after
> you take the rollback segments off-line, Oracle will continue to use them
> as long as they have an active segment.
> 
> BTW --- One way to help to avoid the ORA-01555 when you are committing
> across an open cursor is to take the rollback segment that that cursor is
> using off-line.  No one else will come in a step on the "free" segment but
> your session will continue to process just fine until you close the cursor.
> At least that's been my experience.
begin:vcard 
n:Fink;Daniel
tel;cell:303.808.3282
tel;work:303.272.3225
x-mozilla-html:TRUE
adr:;;;;;;
version:2.1
email;internet:[EMAIL PROTECTED]
title:DB Services Lead
x-mozilla-cpt:;-4832
fn:Daniel Fink
end:vcard

Reply via email to