Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.tools -> Re: Is Oracle deliberately difficult?
Using your example if someone else commits the change from X is true to
X is false and your process hasn't already read the changed row you will
get the updated row where X is false.
If your process reads the row prior to the commit it will still be true
.
The only logical alternative is to lock the row and prevent you from
reading it. If that was done the database engine or your application
would then be faced with deciding how to handle the accessing of a locke
d
row, that is, should the application wait for the lock to be released,
should an error be returned and the application aborted, should an error
be returned and handled, or should the database engine or application pretend the row doesn't exist.
I believe that the way Oracle handles the problem makes the most sense.
>>>>>>>>>>>>>>>>>> Original Message <<<<<<<<<<<<<<<<<<
On 9/5/00, 11:54:43 AM, jxs_at_wolpoff nospam law.com (Jay M. Scheiner) wrote regarding Re: Is Oracle deliberately difficult?:
> I'm not talking about reading the record while it is being changed.
> I'm talking about
> 1) you start processing 10 million records, looking for X to be true.
> 2) someone else changes record # 9 million, from X is true to X is
> false. They commit the transaction. The record is updated, done, not
> in a state of change, etc.
> 3) Your process finally gets to record # 9 million. What should you
> see? The obsolete, incorrect X is true, or the new, correct, X is
> false?
> Just becuase X USED TO BE false doesn't mean that your program handles
> it that way, just because or when you started. When it looks at the
> record, it should see the CORRECT, CURRENT value. If anyone can
> convince me that this is logically wrong, then I will be happy to
> admit I am wrong, just like...
> the block size thing.
> On Sat, 2 Sep 2000 02:39:22 +1100, "Howard J. Rogers"
> <howardjr_at_iprimus.com> wrote:
> >Hang on. The fact is someone is doing something to a record. The
question
> >is: do you not want to see that record at all whilst it is under upda
te,
do
> >you want to see its prior value, do you want to see its current value
,
or do
> >you want to see something that says 'something dodgy is going on with
that
> >record right now so I don't know what to show you'.
> >
> >I'm happy with any of those responses, but I wish you people would te
ll
me
> >what the *right* response is. Personally, and thinking as abstractly
as
I
> >can, it seems reasonable to me to show me the value that we all had
agreed
> >earlier to be the correct one. The fact that it is currently undergo
ing
> >change -well, you could be doing anything, and I wouldn't want my
reports to
> >pick up on experimentation you're about to roll back.
> >
>
> Jay M. Scheiner
> Programmer/Analyst
> Wolpoff & Abramson, LLP
> remove nospm from email address
> Opinions are my own only!
Received on Tue Sep 05 2000 - 23:02:41 CDT
![]() |
![]() |