编写一个PL/SQL块,输入一个员工号,修改该员工的工资,如果该员工为10号部门,工资增加100;若为20号部门,工资增加150;若为30号部门,工资增加200;否则增加300。用if语句完成
时间: 2024-05-06 13:21:12 浏览: 74
很高兴为您解答这个问题!
以下是您所需的 PL/SQL 块:
```sql
DECLARE
v_empno employees.empno%TYPE := &empno; -- 输入员工号
v_deptno employees.deptno%TYPE;
v_salary employees.salary%TYPE;
BEGIN
SELECT deptno, salary INTO v_deptno, v_salary FROM employees WHERE empno = v_empno;
IF v_deptno = 10 THEN
v_salary := v_salary + 100;
ELSIF v_deptno = 20 THEN
v_salary := v_salary + 150;
ELSIF v_deptno = 30 THEN
v_salary := v_salary + 200;
ELSE
v_salary := v_salary + 300;
END IF;
UPDATE employees SET salary = v_salary WHERE empno = v_empno;
COMMIT; -- 提交修改
DBMS_OUTPUT.PUT_LINE('员工' || v_empno || '的工资已修改为 ' || v_salary);
END;
```
该块会首先输入员工号,然后查询员工的部门号和工资。接着,根据部门号采取不同的操作:若为 10 号部门,增加 100 元;若为 20 号部门,增加 150 元;若为 30 号部门,增加 200 元;否则增加 300 元。最后,更新数据库并输出修改后的工资信息。
希望这个回答能帮助到您!如果您还有任何问题或需要进一步帮助,请随时联系我。
阅读全文