Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: A RowId in Oracle 8i

Re: A RowId in Oracle 8i

From: Sybrand Bakker <postbus_at_sybrandb.demon.nl>
Date: Fri, 2 Feb 2001 18:52:25 +0100
Message-ID: <t7ltcfdn2h1i03@beta-news.demon.nl>

"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

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US