0

以下のプログラムで、更新ロックに関して少し混乱しています

CREATE OR REPLACE
PROCEDURE pro_cedure(
    p_dept_id NUMBER )
IS
  CURSOR mycursor
  IS
    SELECT deptno,comm,extra
    FROM emp
    WHERE comm IS NULL
    AND extra  IS NOT NULL
    AND deptno  = p_dept_id 
    FOR UPDATE OF comm;
BEGIN
  FOR emp_rec IN mycursor
  LOOP
    UPDATE emp SET comm = extra 
    WHERE CURRENT OF mycursor;
    INSERT INTO changed
      (
        deptno,
        oldval,
        newval,
        seq_nextval
      )
      VALUES
      (
        emp_rec.deptno,
        emp_rec.comm,
        emp_rec.extra,
        sequence_name.nextval
      );
  END LOOP;
END; 

更新中に他のユーザーが同じテーブルまたは同じ行を更新しようとすると、このプログラムでロックが発生しますか?

4

1 に答える 1