存储过程的入参出参概述。
1.入参in:
入参关键字in,in可缺省。
语法:
methd_name(in 参数 参数类型)
eg:
-- 入参in
DELIMITER $$
USE stores$$
DROP PROCEDURE IF EXISTS inparam$$
CREATE PROCEDURE inparam(IN input INT)
BEGIN
DECLARE number INT DEFAULT 0;
SET number=input+10;
SELECT number;
END$$
2.出参out:
出参关键字out,不可缺省。
语法:
methd_name(out 参数 参数类型)
eg:
-- 出参out
DELIMITER $$
USE stores$$
DROP PROCEDURE IF EXISTS outparam$$
CREATE PROCEDURE outparam(OUT output INT)
BEGIN
DECLARE outnum INT DEFAULT 10;
SET output=outnum+10;
END$$
DELIMITER ;
SET @temp=0;
CALL outparam(@temp);
SELECT @temp;
入参和出参一起使用demo:
-- 入参in,出参out
DELIMITER $$
USE stores$$
DROP PROCEDURE IF EXISTS print_func$$
CREATE PROCEDURE print_func(IN inputparam INT ,OUT outparam INT)
BEGIN
-- 将输入的参数加100
SET inputparam=inputparam+100;
SET outparam=inputparam;
END$$
DELIMITER ;
SET @temp=0;
CALL print_func(100,@temp);
SELECT @temp;
3.入参出参inout:
入参出参关键字inout。
语法:
methd_name(inout 参数 参数类型)
eg:
-- 入参出参inout
DELIMITER $$
USE stores$$
DROP PROCEDURE IF EXISTS sp_param03$$
CREATE PROCEDURE sp_param03(INOUT NAME VARCHAR(24)) -- varchar 没有指定长度报错了
BEGIN
SET NAME= CONCAT('hello',NAME);
END $$
DELIMITER ;
SET @user_name='小明';
CALL sp_param03(@user_name);
SELECT @user_name;