SQL编写程序:创建存储过程UpdateWage,查询指定员工的工资,如果工资小于3000,则加200工资,并提示信息“XX号员工工资已更新。”,如果工资大于3000,则提示信息“XX号员工工资为XXX,已达到规定标准。
时间: 2024-03-02 16:54:33 浏览: 113
好的,以下是您需要的 SQL 编写程序:
```
CREATE OR REPLACE PROCEDURE UpdateWage (
emp_id IN employees.employee_id%TYPE
)
IS
emp_salary employees.salary%TYPE;
BEGIN
SELECT salary INTO emp_salary
FROM employees
WHERE employee_id = emp_id;
IF emp_salary < 3000 THEN
emp_salary := emp_salary + 200;
UPDATE employees SET salary = emp_salary WHERE employee_id = emp_id;
DBMS_OUTPUT.PUT_LINE(emp_id || '号员工工资已更新。');
ELSE
DBMS_OUTPUT.PUT_LINE(emp_id || '号员工工资为' || emp_salary || ',已达到规定标准。');
END IF;
END;
```
解释一下程序的步骤:
1. 创建一个名为 UpdateWage 的存储过程,该存储过程接受一个参数 emp_id,用于指定要更新工资的员工。
2. 在存储过程中,声明一个变量 emp_salary,用于存储员工的工资。
3. 使用 SELECT 语句从 employees 表中查询指定员工的工资,并将结果存储在 emp_salary 变量中。
4. 使用 IF 语句判断员工的工资是否小于3000。如果是,将工资加200,并使用 UPDATE 语句更新 employees 表中的工资数据。并输出更新信息。
5. 如果员工工资大于等于3000,则使用 DBMS_OUTPUT.PUT_LINE 语句输出员工的工资和提示信息。
6. 执行该存储过程,传入要更新工资的员工的 ID 即可。
注意:在执行存储过程前,需要先在 SQL Developer 中开启输出窗口,否则无法看到程序输出结果。可以通过菜单栏的 View > Dbms Output 或者按快捷键 Alt + F5 来打开输出窗口。
阅读全文