在程序中,如果我们使用FOR UPDATE
子句,它将锁定特定行并且只允许一个客户端更新,而其他客户端只能在那时获取同一行中的数据。
我的问题是它什么时候解锁行,在编写程序时我们应该怎么做才能解锁行?
以这个例子为例,我在client_count中使用FOR UPDATE
子句,当它解锁此过程中的特定行时。
create or replace PROCEDURE newprocedur(inMerid IN VARCHAR2,outCount OUT NUMBER) AS
CURSOR c1 IS
select CLIENT_COUNT
from OP_TMER_CONF_PARENT
where MER_ID = inMerid
FOR UPDATE OF CLIENT_COUNT;
BEGIN
Open c1;
loop
fetch c1 into outCount;
exit when c1%NOTFOUND;
outCount:=outCount+1;
update OP_TMER_CONF_PARENT
set CLIENT_COUNT = outCount
where current of c1;
end loop;
close c1;
END;
答案 0 :(得分:2)
更新后的行将在提交后解锁。