编写带有异常处理的PL/SQL程序:从键盘随机输入员工编号,查询该雇员的姓名和工资。 如果雇员存在,但工资小于800元,触发自定义异常,输出:"工资太低,需要涨工资"。
时间: 2024-10-12 18:08:10 浏览: 23
Oracle数据库实验--PL/SQL程序基础1
在Oracle PL/SQL中编写带有异常处理的程序,可以按照以下步骤进行:
```sql
DECLARE
v_employee_id NUMBER;
v_employee_name VARCHAR2(50);
v_salary NUMBER;
BEGIN
-- 提示用户输入员工编号
DBMS_OUTPUT.PUT_LINE('请输入员工编号:');
-- 从键盘读取输入并将其转换为数字
BEGIN
v_employee_id := TO_NUMBER(SUBSTR(USER_INPUT, 1, INSTR(USER_INPUT, ' ') - 1));
-- 查询员工信息
SELECT name, salary INTO v_employee_name, v_salary
FROM employees
WHERE employee_id = v_employee_id;
IF v_salary < 800 THEN
-- 如果工资低于800元,抛出自定义异常
RAISE_APPLICATION_ERROR(-20001, '工资太低,需要涨工资');
ELSE
-- 输出正常结果
DBMS_OUTPUT.PUT_LINE('员工姓名: ' || v_employee_name);
DBMS_OUTPUT.PUT_LINE('员工工资: ' || v_salary);
END IF;
EXCEPTION
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE('输入无效,请输入整数!');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('发生错误: ' || SQLERRM);
END;
END;
/
```
在这个例子中,我们首先提示用户输入员工编号,然后尝试从输入字符串中提取数字。如果输入无效或找不到匹配的员工记录,会引发不同的异常,并给出相应的提示。如果找到员工记录且工资满足条件,则显示其姓名和工资。
阅读全文