查询in参数out参数返回

根据tbl_employees创建存储过程:employeebyid(IN iemployee_id CHAR(10), OUT oname VARCHAR(15), OUT oyear INT)

  1. img


    根据输入的职工编号(iemployee_id ),返回该id对应的姓名(oname )、工龄(oyear,当前年份-参加工作的年份时间)。
    测试数据:查询IN参数为01007的信息,OUT 参数的返回结果分别为 杨子盈 33。

MySQL数据库创建存储过程如下,在创建存储过程时,需要使用不同的语句分隔符以区分普通SQL语句:

DELIMITER $$
CREATE PROCEDURE employeebyid(
    IN iemployee_id CHAR(10),
    OUT oname VARCHAR(15),
    OUT oyear INT
)
BEGIN
    -- 声明变量
    DECLARE starting_date DATE;
    DECLARE current_year INT;

    -- 获取姓名和入职日期
    SELECT name, starting_date INTO oname, starting_date
    FROM tbl_employees
    WHERE employee_id = iemployee_id;

    -- 获取当前年份
    SET current_year = YEAR(CURDATE());

    -- 计算工龄
    SET oyear = current_year - YEAR(starting_date);
END;

测试:

SET @employee_id = '01007';
CALL employeebyid(@employee_id, @name, @year);
SELECT @name, @year;