Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: A RowId in Oracle 8i
"Bynia Doyle" <bynia.doyle_at_bt.com> wrote in message
news:95eilr$j87$1_at_pheidippides.axion.bt.co.uk...
> Hi,
> In 7.3.4 I I used Rowids in a statement that was passed to dbms_sql as as
> follows:
> Delete from Table where Rowid in (Rowid1, Rowid2,..., Rowidn).
>
> The (Rowid1, Rowid2,..., Rowidn) was stored in a variable of type VARCHAR2
> and was construted in a loop.
>
> When I'm attempting to do use the same approach in Oracle 8.1.6 I get
> ORA-01410: invalid ROWID
>
> I gather that the data type of RowId is not the same as it was in 7.3.4 -
any
> ideas on the changes to the statement to get it to work?
>
> Thanks,
> Bynia.
>
> Bynia.
>
> bynia.doyle_at_bt.com
>
> ** All possible disclaimers apply **
You have two choices:
1 (preferred) wherever you can use a select for update in an explicit
cursor. You process the records by
for Currec in Cursr loop
...
delete from foo where current of Cursr
No rowids necessary, and compatible in all versions 2 use the dbms_rowid package in Oracle 8 to translate the Oracle 7 rowid to an Oracle 8 rowid. It's use is documented in the migration documentation.
Hth,
Sybrand Bakker, Oracle DBA
Received on Fri Feb 02 2001 - 11:52:25 CST