存储过程入参出参的使用

存储过程的入参出参概述。

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;
上一篇:The number of divisors(约数) about Humble Numbers[HDU1492]


下一篇:MySQL创建存储过程