Re: Forms 3.0 and Oracle 8i (8.1.7) ( Invalid Rowid)

From: Antti Järvinen <costello_at_iki.fi>
Date: 25 Apr 2003 13:53:55 +0300
Message-ID: <m37k9ialvg.fsf_at_muikku.katiska.org>


moron.jean-luc_at_rcc.ch (Moron) writes:
> > After insert or update of a record, we get an error
> > :FRM-40501 / ORA-01410: invalid Rowid as soon as the record has
> > been commited in the DB if we try to modify it again.
> > PL SQL: any statement like " insert into table A() select ()
> > from table B where Rowid = :My_block.rowid" raises exactly
> > the same SQL error.
>
> Has somebody got the same troubles ?
> Is there any other patch or workaroud ?

Propably there is no patch and reason for this is that rowid format changed between server version 7 and 8.

One workaround would be to change :my_block.rowid datatype from rowid to varchar2(18) and then apply data type conversion functions to every sql statement in this manner
select a,rowid from table into :my_block.a, :my_block.rowid ; becames
select a,rowidtochar(rowid) from table into :my_block.a, :my_block.rowid ;

and
 insert into table A() select () from table B where Rowid = :My_block.rowid would became
 insert into table A() select () from table B where Rowid =  chartorowid(:My_block.rowid)

and propably will not work if forms fetches these rowid values into data blocks that are "base table" data blocks.

and I've never seen forms3 so all this is only guessing.

-- 
Antti Järvinen, costello_at_iki.fi
            "concerto for two faggots and orchestra" 
Received on Fri Apr 25 2003 - 12:53:55 CEST

Original text of this message