收到错误说“无效的rowid”

时间:2013-04-04 11:36:06

标签: plsql

请帮助我使用游标中的“更新”和“当前”子句...虽然光标能够获取记录,但是收到错误的说明无效的rowid。

DECLARE
  CURSOR C_EMP IS SELECT * FROM emp FOR UPDATE OF SAL;--LOCKING MEANS WE CANNOT MAKE ANY CHANGES ON THIS COLUMN WHILE THIS CODE IS RUNNING
BEGIN
  FOR R_EMP IN C_EMP LOOP
  IF R_EMP.SAL<5000 AND C_EMP%FOUND THEN
  UPDATE EMP2 SET SAL=SAL*1.1 WHERE CURRENT OF C_EMP;
  END IF;
  END LOOP;
END;

1 个答案:

答案 0 :(得分:2)

假设您真的想要更新另一个表(EMP2)而不是EMP,那么您不能使用当前更新另一个表的地方,因为rowid将不匹配。

当前的意思是“我们正在处理的rowid”。相反,您必须加入正确的列而不是该子句