请帮助我使用游标中的“更新”和“当前”子句...虽然光标能够获取记录,但是收到错误的说明无效的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;
答案 0 :(得分:2)
假设您真的想要更新另一个表(EMP2)而不是EMP,那么您不能使用当前更新另一个表的地方,因为rowid将不匹配。
当前的意思是“我们正在处理的rowid”。相反,您必须加入正确的列而不是该子句