编写存储过程,要求给定员工编号,输出员工姓名
时间: 2024-10-09 08:14:31 浏览: 34
在Oracle数据库中,你可以创建一个存储过程来接收员工编号作为输入,并返回相应的员工姓名。这里是一个基本的示例:
```sql
CREATE OR REPLACE PROCEDURE get_employee_name (p_employee_id IN NUMBER)
AS
BEGIN
SELECT employee_name
INTO v_employee_name
FROM employees
WHERE employee_id = p_employee_id;
IF SQL%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE('抱歉,找不到员工ID为 ' || p_employee_id || ' 的员工');
ELSE
DBMS_OUTPUT.PUT_LINE('员工名称:' || v_employee_name);
END IF;
END get_employee_name;
/
-- 调用存储过程
EXEC get_employee_name(123); -- 替换为实际需要查找的员工编号
```
这个存储过程名为`get_employee_name`,接受一个整数类型的参数`p_employee_id`。它首先从`employees`表中查找对应员工ID的姓名,如果找到就将其赋值给局部变量`v_employee_name`,然后打印出来;如果没有找到,则输出一条消息告知未找到该员工。
相关问题
oracle编写存储过程根据员工号查询员工全部信息
以下是一个Oracle存储过程的示例代码,可以根据员工号查询员工的全部信息:
```
CREATE OR REPLACE PROCEDURE get_employee_info (
p_empno IN NUMBER,
o_name OUT VARCHAR2,
o_job OUT VARCHAR2,
o_mgr OUT NUMBER,
o_hiredate OUT DATE,
o_sal OUT NUMBER,
o_comm OUT NUMBER,
o_deptno OUT NUMBER
)
IS
BEGIN
SELECT ename, job, mgr, hiredate, sal, comm, deptno
INTO o_name, o_job, o_mgr, o_hiredate, o_sal, o_comm, o_deptno
FROM emp
WHERE empno = p_empno;
END;
```
在这个存储过程中,我们定义了一个名为`get_employee_info`的存储过程,其参数包括一个员工号`p_empno`和七个输出参数,分别为员工姓名`o_name`、工作职位`o_job`、上级领导`o_mgr`、入职日期`o_hiredate`、工资`o_sal`、佣金`o_comm`和部门编号`o_deptno`。
在存储过程的主体中,我们使用SELECT语句从`emp`表中查询出与给定员工号匹配的员工记录,并将结果存储到对应的输出参数中。
要执行此存储过程并获取结果,可以使用以下代码:
```
DECLARE
v_name VARCHAR2(50);
v_job VARCHAR2(50);
v_mgr NUMBER;
v_hiredate DATE;
v_sal NUMBER;
v_comm NUMBER;
v_deptno NUMBER;
BEGIN
get_employee_info(7369, v_name, v_job, v_mgr, v_hiredate, v_sal, v_comm, v_deptno);
DBMS_OUTPUT.PUT_LINE('Name: ' || v_name);
DBMS_OUTPUT.PUT_LINE('Job: ' || v_job);
DBMS_OUTPUT.PUT_LINE('Manager: ' || v_mgr);
DBMS_OUTPUT.PUT_LINE('Hire Date: ' || v_hiredate);
DBMS_OUTPUT.PUT_LINE('Salary: ' || v_sal);
DBMS_OUTPUT.PUT_LINE('Commission: ' || v_comm);
DBMS_OUTPUT.PUT_LINE('Department Number: ' || v_deptno);
END;
```
在这个示例中,我们调用了`get_employee_info`存储过程来获取员工号为7369的员工的全部信息,并将结果输出到控制台上。
写一个带参数的存储过程,根据给定的员工编号,得到该员工的姓名(last_name)和工资(salary)。并调用该过程,输出编号为114的员工的信息。
好的,这是一个关于SQL存储过程的问题。以下是存储过程的代码:
CREATE PROCEDURE getEmployeeInfo(IN empID INT)
BEGIN
SELECT last_name, salary FROM Employees WHERE employee_id = empID;
END
接下来,我们可以调用该存储过程获取编号为114的员工的信息:
CALL getEmployeeInfo(114);
然后,该存储过程将返回对应员工的姓名和工资信息。希望这个答案可以帮到您!
阅读全文