储存过程与函数的区别:
1、标识符不同。函数的标识符为FUNCTION,过程为:PROCEDURE。
2、函数中有返回值,且必须返回,而过程没有返回值。
3、过程无返回值类型,不能将结果直接赋值给变量;函数有返回值类型,调用时,除在select中,必须将返回值赋给变量。
4、函数可以在select语句中直接使用,而过程不能,例如:假设已有函数fun_getAVG() 返回number类型绝对值。那么select fun_getAVG(col_a) from table 这样是可以的带有输入与输出的储存过程:
create procedure selectState (in userName char(20) , out state int)
begin
select state from user where userName = userName;
end
call selectState("micky", @state)
- 带有输入的函数
create function selectState (userName char(20))
returns int
begin
select state from user where userName = userName;
return state;
end
SELECT selectState ("mick")