Если вы выполните оператор DDL (CREATE
, ALTER
, DROP
, GRANT
и т. Д.), То:
База данных Oracle неявно фиксирует текущую транзакцию до и после каждого оператора DDL.
Если вы выполняете оператор DML (INSERT
, UPDATE
, DELETE
, SELECT
, CALL
, MERGE
), тогда:
Эти операторы неявно фиксируют текущую транзакцию.
и вам нужно будет вручную фиксировать незафиксированные транзакции (но вам не нужно COMMIT
после каждого оператора).
Если вы хотите выполнить частичный откат, тогда вы можете использовать SAVEPOINT
с.
Не следует помещать операторы COMMIT
в функции или процедуры, чтобы можно было использовать несколько функций / процедур в одной транзакции, а затем COMMIT
или ROLLBACK
всей этой транзакции.