Record locking
- Last Updated: February 11, 2026
- 2 minute read
- OpenEdge
- Version 13.0
- Documentation
OpenEdge applications rely on the Oracle RDBMS to handle all record locking for the target Oracle database. OpenEdge locks do not apply to your Oracle database. The following table compares OpenEdge locks to their Oracle equivalents.
| OpenEdge lock | Oracle lock | Transaction processing option lock1 |
|---|---|---|
NO-LOCK
|
None | None |
SHARE-LOCK
|
None | None |
EXCLUSIVE-LOCK
|
SHARE UPDATE(row-level) |
SHARE UPDATE(row-level) |
EXCLUSIVE-LOCK . . .
UPDATE
|
SHARE UPDATE (row-level) .
. EXCLUSIVE (table-level) |
SHARE UPDATE(row-level) ...ROW EXCLUSIVE (row-level) |
In applications that use the DataServer, locks occur as a result of ABL statements that the DataServer translates into SQL statements and sends to the Oracle RDBMS.
The following
table shows examples of ABL statements, the SQL statements they
generate, and the resulting Oracle locks in an Oracle database.
The examples assume the default is SHARE-LOCK.
The notes that follow the table help explain the locking behavior.
| ABL statement | SQL statements generated | Oracle locks |
|---|---|---|
|
|
|
|
|
|
|
|
|
ABL and Oracle release locks at different points
in a transaction. When an application issues an UPDATE,
ABL releases the lock once the new data is input. Oracle does not
release the lock until the application issues a COMMIT or ROLLBACK.
ABL allows you to hold a lock outside of a transaction or beyond
a transaction's scope, but Oracle always releases all locks at the
end of a transaction.
The Oracle database supports "deferred constraints" which are enforced at a transaction boundary. If a deferred constraint violation occurs at a transaction boundary, the transaction is rolled back and the application is terminated.
See the Oracle documentation for details on Oracle locking. See Develop ABL Applications for details on how ABL transactions and locks work.