编写程序:创建存储过程GetGrade,查询指定员工的工资,使用CASE语句输出其工资等级。工资小于等于3000,等级为“低”;工资大于3000,小于5000,等级为”中”;工资大于等于5000,等级为高。并执行该存储过程。
时间: 2024-03-02 07:54:32 浏览: 24
好的,以下是您需要的 SQL 编写程序:
```
CREATE OR REPLACE PROCEDURE GetGrade (
emp_id IN employees.employee_id%TYPE
)
IS
emp_salary employees.salary%TYPE;
emp_grade VARCHAR2(10);
BEGIN
SELECT salary INTO emp_salary
FROM employees
WHERE employee_id = emp_id;
CASE
WHEN emp_salary <= 3000 THEN emp_grade := '低';
WHEN emp_salary > 3000 AND emp_salary < 5000 THEN emp_grade := '中';
ELSE emp_grade := '高';
END CASE;
DBMS_OUTPUT.PUT_LINE('员工工资为:' || emp_salary || ',工资等级为:' || emp_grade);
END;
```
解释一下程序的步骤:
1. 创建一个名为 GetGrade 的存储过程,该存储过程接受一个参数 emp_id,用于指定要查询的员工。
2. 在存储过程中,声明两个变量 emp_salary 和 emp_grade,用于存储员工的工资和工资等级。
3. 使用 SELECT 语句从 employees 表中查询指定员工的工资,并将结果存储在 emp_salary 变量中。
4. 使用 CASE 语句根据员工的工资计算其工资等级,并将结果存储在 emp_grade 变量中。
5. 使用 DBMS_OUTPUT.PUT_LINE 语句输出员工的工资和工资等级。
6. 执行该存储过程,传入要查询的员工的 ID 即可。
注意:在执行存储过程前,需要先在 SQL Developer 中开启输出窗口,否则无法看到程序输出结果。可以通过菜单栏的 View > Dbms Output 或者按快捷键 Alt + F5 来打开输出窗口。