/*
drop table emp; if exists?
create table emp(
empid number(5),
empname varchar2(100),
empage number(5)
);
*/
declare
v_empname varchar(50) := '
chenzw';
begin
delete from emp;
insert into emp values(3,'
chenzw',29);
update emp set empage=empage+1 where empname='
chenzw';
--使用commit work语句提交事务,commit work语句可以简写为commit,他们的作用是完全相同的
--因为提交事务会产生I/O操作,而且还要执行一系列的操作,所以频繁的提交事务会影响数据库的性能
commit work;
end;
/
/*
提交事务的时候,ORACLE的操作如下:
1、在撤销UNDO表空间的内部事务表中记录事务被提交,事务的SCN被分配并且保存在表中。
2、日志写入进程(LGWR)将SGA的重做日志缓存中的重做日志条目和事务的SCN写入到重做日志文件。
3、ORACLE释放拥有的行和表上的锁。
4、ORACLE标识事务完成
*/