Для предотвращения попытки двух или нескольких пользователей изменять одни и те же данные, Oracle автоматически блокирует данные. Фактически Oracle блокирует также определения объектов, используемых в операторах (например, для предотвращения удаления таблицы или изменения структуры таблицы кемлибо до тех пор, пока она находится в использовании). Известны блокировки DDL (Data Definition Language — Язык определения данных) и DML (Data Manipulation Language — Язык манипулирования данными).
Даже если строки были блокированы одним пользовательским процессом, другие пользовательские процессы все еще могут запрашивать данные; старая версия данных видна до тех пор, пока изменения, выполняемые блокирующим пользователем, не будут зафиксированы в базе данных.
Блокировки снимаются каждый раз, когда выдается оператор COMMIT или ROLLBACK.
Оператор TRUNCATE
Удаление строк из таблицы может потребовать некоторого времени, поскольку старая версия данных должна быть сохранена в системных сегментах отката на случай, если понадобится восстановить эти строки. Поэтому нет ничего необычного в том, что удаление большого количества строк может занять много часов.