使用SQLDeveloper编写PL/SQL程序块,采用游标方式,调整scott.emp表中雇员信息的基本工资(字段名SAL)。如果该员工薪资小于等于2500,则在原基本工资基础上增加20%的薪资;如果该员工的薪资大于2500,则取消加薪。编写以上程序,输出每位员工的编号、姓名,加薪是否成功,如果加薪成功,输出加薪前和加薪后的工资;如果加薪失败,则输出原工资。
时间: 2024-03-22 13:42:03 浏览: 86
PL/SQL Developer V14.0.5.1986 x86/x64 最新官方多语言注册版(含中文)2020.12.14官方更新
好的,以下是PL/SQL程序块:
```plsql
DECLARE
CURSOR emp_cur IS SELECT empno, ename, sal FROM scott.emp;
v_empno emp.empno%TYPE;
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
FOR emp_rec IN emp_cur LOOP
v_empno := emp_rec.empno;
v_ename := emp_rec.ename;
v_sal := emp_rec.sal;
IF v_sal <= 2500 THEN
v_sal := v_sal * 1.2;
UPDATE scott.emp SET sal = v_sal WHERE empno = v_empno;
DBMS_OUTPUT.PUT_LINE('员工编号:' || v_empno || ',姓名:' || v_ename || ',加薪前工资:' || emp_rec.sal || ',加薪后工资:' || v_sal || ',加薪成功。');
ELSE
DBMS_OUTPUT.PUT_LINE('员工编号:' || v_empno || ',姓名:' || v_ename || ',工资:' || v_sal || ',加薪失败。');
END IF;
END LOOP;
COMMIT;
END;
```
这个程序块使用了一个游标 `emp_cur` 来遍历 `scott.emp` 表中的所有员工信息。对于每个员工,如果其薪资小于等于2500,则将其薪资增加20%;如果其薪资大于2500,则不做任何操作。然后,程序块会输出每位员工的编号、姓名,加薪是否成功,以及加薪前后的工资。如果加薪成功,会输出加薪前和加薪后的工资;如果加薪失败,则输出原工资。
注意,在程序块中,我们使用了 `DBMS_OUTPUT.PUT_LINE` 函数来输出信息。如果需要看到输出结果,需要在运行程序块前打开 SQL Developer 的输出面板。
阅读全文