|Oracle9i Supplied PL/SQL Packages and Types Reference
Release 1 (9.0.1)
Part Number A89852-02
DBMS_ROWID , 10 of 12
This function translates a restricted
ROWID that addresses a row in a schema and table that you specify to the extended
ROWID format. Later, it may be removed from this package into a different place.
DBMS_ROWID.ROWID_TO_EXTENDED ( old_rowid IN ROWID, schema_name IN VARCHAR2, object_name IN VARCHAR2, conversion_type IN INTEGER) RETURN ROWID;
Name of the schema which contains the table (optional).
Table name (optional).
ROWID_TO_EXTENDED returns the
ROWID in the extended character format. If the input
NULL, then the function returns
NULL. If a zero-valued
ROWID is supplied (00000000.0000.0000), then a zero-valued restricted
ROWID is returned.
Assume that there is a table called
RIDS in the schema
SCOTT, and that the table contains a column
ROWID_COL that holds
ROWIDs (restricted), and a column
TABLE_COL that point to other tables in the
SCOTT schema. You can convert the
ROWIDs to extended format with the statement:
If the schema and object names are provided as
IN parameters, then this function verifies
SELECT authority on the table named, and converts the restricted
ROWID provided to an extended
ROWID, using the data object number of the table. That
ROWID_TO_EXTENDED returns a value, however, does not guarantee that the converted
ROWID actually references a valid row in the table, either at the time that the function is called, or when the extended
ROWID is actually used.
If the schema and object name are not provided (are passed as
NULL), then this function attempts to fetch the page specified by the restricted
ROWID provided. It treats the file number stored in this
ROWID as the absolute file number. This can cause problems if the file has been dropped, and its number has been reused prior to the migration. If the fetched page belongs to a valid table, then the data object number of this table is used in converting to an extended
ROWID value. This is very inefficient, and Oracle recommends doing this only as a last resort, when the target table is not known. The user must still know the correct table name at the time of using the converted value.
If an extended
ROWID value is supplied, the data object number in the input extended
ROWID is verified against the data object number computed from the table name parameter. If the two numbers do not match, the
INVALID_ROWID exception is raised. If they do match, the input
ROWID is returned.
The ROWID_VERIFY Function has a method to determine if a given