carp,
I think most of the time it does. I suppose Oracle does not guarantee the same order every time because some select statments process in parallel.
I also believe it's because the order retrieved can also depend on which data blocks are already in the buffer cache (and there may be other factors I haven't read/heard/thought about). However, my experience concurs with your take - "most of the time it does".
We had some problems with this as I recall, for precisely the reasons set out above. The rows //cannot// be guaranteed.
The smart thing to do if you really //must// have your stuff in order and guarantee their integrity is to bolt a column onto your table and put a sequence number into it (you can do this with a trigger, in your update sp or with a cursor loop as and when required). This means all your rows can be correctly and uniquely identified.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.