Oracle uses rowids internally for the construction of indexes. Each key in an index is associated
with a rowid that points to the associated row's address for fast access. End users and application
developers can also use rowids for several important functions:
Rowids are the fastest means of accessing particular rows.
Rowids can be used to see how a table is organized.
Rowids are unique identifiers for rows in a given table.
Before you use rowids in DML statements, they should be verified and guaranteed not to change. The
intended rows should be locked so they cannot be deleted. Under some circumstances, requesting data
with an invalid rowid could cause a statement to fail.
You can also create tables with columns defined using the ROWID datatype. For example, you can
define an exception table with a column of datatype ROWID to store the rowids of rows in the
database that violate integrity constraints. Columns defined using the ROWID datatype behave like
other table columns: values can be updated, and so on. Each value in a column defined as datatype
ROWID requires six bytes to store pertinent column data.