Re: Updating by RowId when alread has fetched the row.... Small note (May not be a problem but just wanted to show).
create table x(a number);
insert into x values(1);
from session 1
declare
v1 rowid;
begin
select rowid into v1 from x;
dbms_lock.sleep(20);
update x set a=100 where rowid=v1;
end;
/
from session 2 - After 5 secs of starting the above in session 1
alter table x move tablespace users;
Session 1 error
ERROR at line 1:
ORA-01410: invalid ROWID
ORA-06512: at line 6
Even worse you may update a wrong row.
May want to convert that select rowid into v1 from x into a select
rowid into v1 from x for update.
regards
Srivenu |