Defining the ROWID
- Last Updated: March 30, 2020
- 3 minute read
- OpenEdge
- Version 12.2
- Documentation
When you create or update a schema image,
the DataServer uses the following guidelines when determining how
to support the ROWID function:
- If the
Oracle table has a
PROGRESS_RECIDcolumn, the DataServer selects it. This column provides the optimal support for theROWIDfunction. You cannot select an alternative to it. - If the Oracle table does not have a
PROGRESS_RECIDcolumn, the DataServer selects a unique index on a mandatoryNUMBERcolumn with precision < 10 or undefined and a scale of 0 or undefined. - If none of the above is available, the DataServer uses the native
ROWID.
The
Data Dictionary allows you to select the native ROWID or
an alternative index to support the ROWID function.
The alternative index should be a stable one.
ROWID is
supported for a table, you must reconnect to the database to avoid
inconsistent row identifiers. An index that you select
to support ROWID must meet the following database-
and application-level criteria:
The database criteria are:
- The index consists of a single field.
- The indexed column is a
NUMBERdata type.
The application criteria are:
- The index must at least be treated as unique by your application.
- The index must at least be treated as mandatory in your application.
- The indexed column only allows values with fewer than ten digits (for applications associated with an OpenEdge 10.1A Release or earlier).
- The indexed column only allows values with fewer than nineteen digits (for applications associated with an OpenEdge 10.1B Release or earlier).
The Oracle DataServer allows you to select indexes that meet only the first two database-related requirements, but your application must ensure that the index meets the remaining criteria.
For example,
your application might access an indexed column defined as a NUMBER column,
but the scale might not be specified. If your application assigns
only values between 1 and 214783647 to this column, it meets one
of the additional criteria. Your application must ensure that the indexed
column meets the other two criteria as well. If you do not meet
all three criteria, you risk corrupting your database.
To select an index to support the ROWID function, in the Data Dictionary:

