Chinaunix首页 | 论坛 | 博客
  • 博客访问: 858165
  • 博文数量: 150
  • 博客积分: 5123
  • 博客等级: 大校
  • 技术积分: 1478
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:03
文章分类

全部博文(150)

文章存档

2011年(2)

2010年(139)

2009年(9)

分类: Oracle

2009-02-09 19:58:59

测试结果:程序在开始执行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;
发现被阻塞住了,说明程序在开始执行触发器时,已对该行加锁了。
阅读(949) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~