CURSOR c_Salary IS
SELECT Salary,
Author_Code
FROM Auths
WHERE Author_Code >=’A00001′
AND Author_Code <=’A00006′;
BEGIN
– 打开游标
LOOP
–游标循环,将游标查询结果集中的一行保存到两个临时变量中
() c_Salary INTO v_Salary, v_Code;
– 当结果集中没有行是退出
EXIT WHEN ();
– 如果该作家的工作少于或等于五百,则给该作家增加15%的工资
– 500到1000之间则增加12%,其他增加10%
IF v_Salary <= 500 THEN
UPDATE Auths
SET Salary = ()
WHERE Author_Code = v_Code;
ELSIF v_Salary <= 1000 THEN
UPDATE Auths
SET Salary = Salary + Salary * 0.12
WHERE Author_Code = v_Code;
()
UPDATE Auths
SET Salary = Salary + Salary * 0.1
WHERE Author_Code = v_Code;
END IF;
END LOOP;
();
();
EXCEPTION
WHEN OTHERS THEN
CLOSE c_Salary;
ROLLBACK;
v_ErrText := ();
DBMS_OUTPUT.PUT_LINE(‘程序异常终止,出现一下错误:’||v_ErrText);
END;