如果我用于更新子句,如何解锁行



如果我们使用 FOR UPDATE子句,它将锁定特定的行,只允许一个客户端更新,而其他客户端当时只能在同一行中获取数据。

我的问题是什么时候可以解锁该行,在编写过程时该怎么办?在此处以此示例为clause_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;

提交后,更新的行将解锁。

最新更新