Oracle uses locking to control concurrent access to tables by multiple users and transactions. There are two types of locks - shared locks which allow multiple users to read data simultaneously, and exclusive locks which prevent other users from accessing the data being written to by a transaction. Oracle applies the minimum level of locking required, such as row-level or page-level locks depending on the SQL statement criteria. Users can also explicitly lock tables or rows using LOCK TABLE or SELECT FOR UPDATE statements.