SQL存储过程—01—介绍
1、存储模块中的存储过程和存储函数
1.存储过程:
存储过程没有返回值,想要返回一个数据比较麻烦,需要通过输出参数;
2.存储函数
存储函数有返回值,想要返回一个数据很简单,只要在sql块中使用return语句即可;
2、创建存储模块:
create procedure 模式名.存储模块名(参数1 输入输出参数类型 参数类型) as
declarce
。。。。
begin
。。。。
{exception
。。。。}
end;
注意事项:
- exception是可选的;
- 使用赋值符号“:=”或关键字 DEFAULT,可以为 IN 参数指定一个缺省值。如果调用时未指定参数值,系统将自动使用为该参数设定的缺省值。
- 我们在创建存储模块的时候,都使用了 ORREPLACE 选项。使用 OR REPLACE 选项的好处是,如果系统中已经有同名的存储模块,服务器会删除原先的存储模块,再创建新的存储模块。如果不使用 OR REPLACE 选项,当创建的存储模块与系统中已有的存储模块同名时,服务器会报错。
3、删除存储模块
drop produce 模式名.存储模块名;
4、调用存储模块
(1)调用存储过程
- call可以调用;直接通过名字调用;
- select会报错,因为select会返回一个 函数返回值的,而存储过程是没有返回值的只能通过返回参数来返回数据
(2)调用存储函数
- call:通过 CALL 和直接使用名字调用存储函数时,不会返回函数的返回值,仅执行其中的操作;
- select:通过 SELECT 语句调用存储函数时,不仅会执行其中的操作,还会返回函数的返回值。SELECT 调用的存储函数不支持含有 OUT、IN OUT 模式的参数。
5、重新编译存储模块
ALTER PROCEDURE 模式名.存储过程名 COMPILE;