|
“只读事务”是指只允许查询操作,而不允许任何dml操作的事务。例如有两个session,sessiona及session b.当sessiona设置了只读事务后,即使session b对sessiona所查询信息做了修改,而sessiona所查询的依然是修改前的值。
time 1:
session a:
scott@kenny> set transaction read only;
transaction set.
time2:
session b:
scott@kenny> update emp set sal=4000 where ename='smith';
1 row updated.
scott@kenny> commit;
commit complete.
time 3:
session a:
scott@kenny> select * from emp where ename='smith';
empno ename job mgr hiredate sal comm deptno
---------- ---------- --------- ---------- ---------
7369 smith clerk 7902 17-dec-80 2000 20
我们可以看到,在session a下所查到的值仍然是更改前的sal:2000。
=================================================
|
由于在只读事务中,无法继续执行dml操作,因此,可以设置顺序事务用来enable:
sql>set transaction isolation level serializable;
|
至此,我们就可以在session中继续dml操作了。 |