其他分享
首页 > 其他分享> > 存储过程入参出参的使用

存储过程入参出参的使用

作者:互联网

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

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;

标签:存储,SET,name,temp,--,DELIMITER,参出,过程,PROCEDURE
来源: https://blog.csdn.net/weixin_44874132/article/details/120512289