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关键字
![]()