存储过程传参
delimiter &&
create procedure proc06(in empno int )
begin
select * from emp where emp.empno=empno;
end &&
delimiter ;
call proc06(1001);
-- 封装有参数的存储过程,可以通过传入部门名和薪资,查询指定不猛,并且薪资大于指定值的员工

delimiter $$
create procedure proc07(in param_dname varchar(50),in param_sal decimal(7,2) )
begin
select * from dept a,emp b where a.deptno=b.deptno and a.dname=param_dname and b.sal>param_sal;
end $$
delimiter ;
call proc07('学工部',5000);
-- 封装有参数的存储过程,传入员工编号,返回员工名字

delimiter &&
create procedure proc08(in in_empno int,out out_ename varchar(50))
begin
select ename into out_ename from emp where empno=in_empno;
end &&
delimiter ;
call proc08(1002,@o_ename); -- 定义一个变量用来接收out的返回值
select @o_ename; -- 输出变量
-- 返回多个值

delimiter &&
create procedure proc09(in in_empno int,out out_ename varchar(50),out out_sal decimal(7,2))
begin
select ename,sal into out_ename,out_sal
from emp where empno=in_empno;
end &&
delimiter ;
call proc09(1002,@o_ename,@o_sal); -- 定义一个变量用来接收out的返回值
select @o_ename,@o_sal; -- 输出变量
inout关键字

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!