DECLARE
v_NumCredits classes.num_credits%TYPE; CURSOR c_RegisteredStudents IS
SELECT *
FROM students
WHERE id IN (SELECT student_id
FROM registered_students
WHERE department= 'HIS'
AND course = 101)
FOR UPDATE OF current_credits;BEGIN
FOR v_StudentInfo IN c_RegisteredStudents LOOP
SELECT num_credits
INTO v_NumCredits
FROM classes
WHERE department = 'HIS'
AND course = 101; UPDATE students
SET current_credits = current_credits + v_NumCredits
WHERE CURRENT OF c_RegisteredStudents;
END LOOP; COMMIT;
END;该update语句只更新在游标声明部分的for update子句中列出的列.如果没有列列出,则任一列都被更新.
v_NumCredits classes.num_credits%TYPE; CURSOR c_RegisteredStudents IS
SELECT *
FROM students
WHERE id IN (SELECT student_id
FROM registered_students
WHERE department= 'HIS'
AND course = 101)
FOR UPDATE OF current_credits;BEGIN
FOR v_StudentInfo IN c_RegisteredStudents LOOP
SELECT num_credits
INTO v_NumCredits
FROM classes
WHERE department = 'HIS'
AND course = 101; UPDATE students
SET current_credits = current_credits + v_NumCredits
WHERE CURRENT OF c_RegisteredStudents;
END LOOP; COMMIT;
END;该update语句只更新在游标声明部分的for update子句中列出的列.如果没有列列出,则任一列都被更新.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货