存储过程的参数
存储过程的参数
存储过程如何与调用者进行交互呢,交互方式之一就是参数。
Call test3(2)
注意:声明变量的那句话就不需要了!!(参数、 名字、 类型 )
查询:
SET @uname:='';
CALL test4(2,@uname);
SELECT @uname AS myunameAA
结果:
其实:end前面的select my_uname也是不需要的,因为已经有了out参数来接受返回的值。
DELIMITER $$
CREATE
PROCEDURE `procedure`.`test4`(IN my_uid INT,OUT my_uname VARCHAR(32))
BEGIN
SELECT uname INTO my_uname FROM users WHERE uid = my_uid;
END$$
DELIMITER ;
询问:
SET @uname:='';
CALL test4(1,@uname);
SELECT @uname AS myunameA
结果:
总是有9B的出现,搞了好几次,不知道为什么????????
DELIMITER $$
CREATE
PROCEDURE `procedure`.`test5`(INOUT my_uid INT,INOUT my_uname VARCHAR(32))
BEGIN
SET my_uid =2;
SET my_uname ='lhh';
SELECT uid,uname INTO my_uid,my_uname FROM users WHERE uid = my_uid;
END$$
DELIMITER ;
查询:
SET @uid:=0;
SET @uname:='';
CALL test5(@uid,@uname);
SELECT @uid AS uidA, @uname AS myunameA
又出现6B,醉了。