When Converting ROWID to RESTRICTED and Back does not Work for Partitioned Tables (Doc ID 1091729.1)

Last updated on MARCH 27, 2014

Applies to:

Oracle Server - Enterprise Edition - Version: 8.0.5.0 to 11.2.0.1 - Release: 8.0.5 to 11.2
Information in this document applies to any platform.

Symptoms

When a partitioned table is involved converting rowid to restricted and back
is giving incorrect results.

Wrong value returned for a partitioned table

SQL> select dbms_rowid.rowid_to_restricted(chartorowid('0000133A.003E.0005'),
'SCOTT','G_GEOMETRY_77_PART', 0) from dual;

DBMS_ROWID.ROWID_T
------------------
D/////AAFAAABM6AA+

Because if this ORA-01410: invalid ROWID is coming when:


SQL> select feat_num from g_geometry_77_part where rowid=chartorowid('D/////AA0AAAOcrAAe');
select feat_num from g_geometry_77_part where rowid=chartorowid('D/////AA0AAAOcrAAe')
*
ERROR at line 1:
ORA-01410: invalid ROWID


Correct value when the table is not partitioned.

SQL> select dbms_rowid.rowid_to_restricted(chartorowid('000078BD.003E.0005'),
'SCOTT','G_GEOMETRY_77', 0) from dual;

DBMS_ROWID.ROWID_T
------------------
AAATVvAAFAAAHi9AA+


The issue was already logged as a bug and closed as not feasible to fix but
this was not specified in documentation.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms