To change a field using the CHANGE FIELD statement, you need the
Oracle Rdb CHANGE privilege for the field.
When you use CHANGE FIELD, you should be aware of the following
conditions:
o If an index is defined on a field that requires a collating
sequence change, the index must be deleted first, then
redefined after the collating sequence change.
o If the database is created with the DICTIONARY IS REQUIRED
option, you must invoke the database by path name, rather than
file name, before you issue this statement.
o You cannot issue a CHANGE FIELD statement to change the data
type or collating sequence for a field that is used in an
index or view definition. Oracle Rdb returns an error message in
these instances and does not change the field. To change the
data type or collating sequence of a field used in an index or
view, first delete the index or view definition, then change
the field, and finally, redefine the index or view.
o If you issue a CHANGE FIELD statement that results in a
conversion error when you attempt to retrieve the record,
do the following: change the domain back to the original
data type; then remove or change the offending records; then
reissue the CHANGE FIELD statement to alter the domain to
the new data type. Do not attempt to correct these type of
conversion errors by just deleting the record (without first
changing the domain back to the orginal data type). Doing so
results in a conversion error when RDO attempts the delete
operation.
When you change a field definition, this change will be visible
to other users only after they invoke the database the next
time. By default, a database can be opened automatically (that
is, by any user who invokes the database and executes a data
manipulation language statement). If the database was modified
so that it must be manually opened, the RMU/OPEN command must be
used to open it.
Depending on the type of change you make, you may have to
reprocess the application programs that refer to the changed
fields.
You can change a field definition only if you have invoked the
database that includes the field definition. You must execute
this statement in a read/write transaction. If there is no active
transaction, and you issue this statement, Oracle Rdb starts a
read/write transaction implicitly.
Other users are allowed to be attached to the database when you
issue the CHANGE FIELD statement.