首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle事务操作的有关问题

2012-08-14 
oracle事务操作的问题我一个存储过程中,要先查询一个表,然后根据结果做出相应操作,比如:select xx from ta

oracle事务操作的问题
我一个存储过程中,要先查询一个表,然后根据结果做出相应操作,比如:

select xx from table T
if (no record) then
insert xxx to T
else
do something else
commit


当这个存储过程被连续快速调用2次时,第一次的调用事务还没有结束,而第二次调用已经开始,所以查到表T里没有记录,所以会执行insert操作,这个是我所不希望的。

我希望严格的控制,当第一次事务还没有结束时,insert操作对表T加锁,这个时候任何其他事务都不能查询,必须等待到第一次事务结束为止。

不知道有没有办法实现?



[解决办法]

SQL code
lock table t in exclusive mode;--在你的select xx from table t前加句update t set xx=xx where 1=2;select xx from table T; 

热点排行