Explicit commits are fired by using the COMMIT command.
begin update ...; update ...; insert ... commit; end;
Implicit commits fire automatically when you use any DDL commands that create, alter, or delete any database objects.
It doesn't matter if the DDL command fails.
Explicit rollbacks occur when you use the command ROLLBACK. The rollback may be full or partial.
declare
v_errors_yn VARCHAR2(1) := 'N';
begin
update emp
set sal = sal * 1.1 --5
where deptNo = 10;
update emp
set sal = sal * .9
where deptNo = 20; --9
--...
select decode (count(*),0,'N','Y')
into v_errors_yn
from t_logError;
If v_errors_yn = 'Y' then --17
rollback;
end if;
end;
If the T_LOGERROR table contains any records, changes made by both UPDATE statements will be discarded.