测试结果:程序在开始执行before触发器时,已对该行加锁了。
SQL> conn sys/sys as sysdba;
已连接。
SQL> grant execute on dbms_lock
to scott;
授权成功。
SQL> connect scott/tiger;
已连接。
SQL> CREATE OR REPLACE TRIGGER
temp_air
2 before update ON emp
3 FOR EACH ROW
4 BEGIN
5 dbms_lock.sleep(200);
6 END;
7 /
触发器已创建
SQL> update emp set ename='TESTNAME' where
empno=7902;
此时由触发器要等200秒,所以此处会等待200秒,
另开一个窗口:
SQL> select * from emp
where empno=7902 for update;
发现被阻塞住了,说明程序在开始执行触发器时,已对该行加锁了。
阅读(984) | 评论(0) | 转发(0) |