编写PL/SQL块,要求实现如下功能:输入雇员号,输出该雇员的雇员名,工资,个人所得税(工资*税率0.03)
时间: 2024-11-29 12:18:22 浏览: 13
在Oracle的PL/SQL环境中,你可以创建一个匿名块或者包体来实现这个功能。假设有一个名为`EMPLOYEES`的表,其中包含`EMP_ID`, `ENAME`, `SALARY`字段。以下是一个基本的示例,展示了如何接收用户输入的雇员号并查询相关的员工信息:
```sql
DECLARE
v_emp_id NUMBER;
v_employee_name VARCHAR2(50);
v_salary NUMBER;
v_tax NUMBER;
BEGIN
-- 提示用户输入雇员号
DBMS_OUTPUT.PUT_LINE('请输入雇员号:');
FETCH INTO v_emp_id FROM DUAL WHERE TYPE ('input') IS NUMBER;
-- 查询员工信息
SELECT ENAME, SALARY
INTO v_employee_name, v_salary
FROM EMPLOYEES
WHERE EMP_ID = v_emp_id;
-- 计算个人所得税
v_tax := v_salary * 0.03;
-- 输出结果
DBMS_OUTPUT.PUT_LINE('雇员姓名: ' || v_employee_name);
DBMS_OUTPUT.PUT_LINE('工资: ' || v_salary);
DBMS_OUTPUT.PUT_LINE('个人所得税: ' || v_tax);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('找不到该雇员的信息');
END;
/
-- 使用提示:请运行此块并按照提示输入雇员号
```
在此脚本中,我们首先获取用户输入的雇员号,然后从`EMPLOYEES`表中查找对应的记录。如果找到,则计算并显示个人所得税;如果没有找到则抛出异常。
阅读全文