查询多个表时,可以使用FOR UPDATE子句将行锁定限制为特定的表。仅当FOR UPDATE OF子句引用该表中的列时,表中的行才被锁定。例如,以下查询将锁定employees表中的行,而不锁定departments表中的行:
DECLARE
CURSOR c1 IS SELECT last_name, department_name FROM employees, departments
WHERE employees.department_id = departments.department_id
AND job_id = 'SA_MAN'
FOR UPDATE OF salary;