企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
## 存储过程的形参类型 存储过程也允许提供参数(形参和实参):存储的参数也和函数一样,需要指定其类型。 但是存储过程对参数还有额外的要求:自己的参数分类 #### in 表示参数从外部传入到里面使用(过程内部使用):可以是直接数据也可以是保存数据的变量 #### out 表示参数是从过程里面把数据保存到变量中,交给外部使用:传入的必须是变量 如果说传入的out变量本身在外部有数据,那么在进入过程之后,第一件事就是被清空,设为NULL #### inout 数据可以从外部传入到过程内部使用,同时内部操作之后,又会将数据返还给外部。 语法: 过程名称(形参) ~~~ (过程类型 变量名称 数据类型) //形参写法 ~~~ ~~~ create procedure hah(in int_1 int,out int_2 int,inout int_3 int) begin ##查看三个传入进来的数据的值 select int_1,int_2,int_3; ##修改三个变量的值 set int_1 = 10; set int_2 = 100; set int_3 = 1000; select int_1,int_2,int_3; ##查看会话变量 select @n1,@n2,@n3; ##修改会话变量 set @n1 = 'a'; set @n2 = 'b'; set @n3 = 'c'; select @n1,@n2,@n3; end $$ ~~~ ~~~ call show(@n1,@n2,@n3); ~~~ 结果: 分析结果:out类型的数据会被清空,其他正常 ![](https://box.kancloud.cn/120c9cfbffc72db5031701df4792a1f2_554x375.png) 在执行过程之后,再次查看会话变量(外部) ~~~ +------+------+------+ | @n1 | @n2 | @n3 | +------+------+------+ | a | 100 | 1000 | +------+------+------+ ~~~