--编写一个PL/SQL程序块从emp表中对名字以“A”或S开始的所有雇员按他们基本薪水的10%给他们加薪 输出 增加工资的人数,增加的工资总金额
时间: 2024-02-24 14:59:16 浏览: 97
好的,以下是编写的PL/SQL程序块:
```
DECLARE
v_count NUMBER := 0; -- 增加工资的人数
v_total_salary NUMBER := 0; -- 增加的工资总金额
BEGIN
FOR emp_record IN (SELECT * FROM emp WHERE ename LIKE 'A%' OR ename LIKE 'S%') LOOP
-- 计算增加的工资金额
DECLARE
v_increase_salary NUMBER := emp_record.sal * 0.1;
BEGIN
-- 更新员工的工资
UPDATE emp SET sal = sal + v_increase_salary WHERE empno = emp_record.empno;
v_count := v_count + 1;
v_total_salary := v_total_salary + v_increase_salary;
END;
END LOOP;
-- 输出结果
DBMS_OUTPUT.PUT_LINE('增加工资的人数:' || v_count);
DBMS_OUTPUT.PUT_LINE('增加的工资总金额:' || v_total_salary);
END;
```
这段程序块使用了一个循环来遍历emp表中所有名字以“A”或“S”开头的员工记录,并计算每个员工增加的工资金额。然后,更新员工的工资,并累计增加工资的人数和总金额。最后,输出结果。
注意,程序块中使用了DBMS_OUTPUT.PUT_LINE来输出结果,你需要在执行程序块前开启SQL*Plus或其他客户端的输出窗口才能看到结果。
阅读全文