


A_ORA_DUPLICATE_KEY
This variable determines how Acu4GL for Oracle handles the processing of
alternate keys with duplicates. When READing on an alternate key with duplicates,
it is possible that all records will not be returned. The probability of this
scenario increases if the direction of the READ changes (for example, switching
from READ NEXT to READ PREVIOUS).
This generally occurs when:
- The data set was imported from an external file
- The database has undergone large amounts of modifications resulting in the
re-use of row IDs
- The initial query returned the record set in some way such that the records
are not in row ID order
Three potential values can be set for this variable:
Note: These settings can affect performance. If you need assistance, see your
Database Administrator.
1. Zero ("0"): If this variable is set to zero, no ROWID is added to the SELECT
statements for reading in a forward direction, but a ROWID is added to SELECT
statements for reading in a backward direction if the file is not a VIEW.
Important: Setting this variable to zero ("0") is not recommended because ROWIDs may
not be in an ascending order. This method can be used if the direction in which
the application reads records does not change, but it is unknown if this will
work for all situations. This method is provided for backwards compatibility
only.
2. One ("1"): If this variable is set to one ("1"), a ROWID is added to the
ORDER BY clause of all SELECT statements reading tables on an alternate key that
allow duplicates. A ROWID is not added if the file is a VIEW. This assures a
predictable ordering of keys. This is the default setting.
3. Two ("2"): If this variable is set to two ("2"), the primary key segments are
added to the ORDER BY clause of all SELECT statements reading tables or VIEWs
on an alternate key that allow duplicates.