一、存储过程创建语法
create or replace procedure 存储过程名(param1 in type,param2 out type)
as
变量1 类型(值范围); --vs_msg VARCHAR2(4000);
变量2 类型(值范围);
Begin
过程体;
Exception
When others then
Rollback;
End;
注意事项:
1, 存储过程参数不带取值范围,in表示传入,out表示输出,in out即可作输入,又可作输出。
如果存储过程的参数没有指定存参数传递类型,默认为IN。
2,自定义变量类型可以使用任意Oracle中的合法类型,带取值范围,后面接分号。
3, 过程语句块:从begin 关键字开始为过程的语句块。存储过程的具体逻辑在这里来实现。
异常处理块:关键字为exception ,为处理语句产生的异常。该部分为可选 。
结束块:由end关键字结果。
二、存储过程的参数传递方式
1,IN 按值传递,并且它不允许在存储过程中被重新赋值。
2,当一个参数被指定为OUT类型时,就算在调用存储过程之前对该参数进行了赋值,在存储过程中该参数的值仍然是null.
OUT类型可以理解为按引用传递方式。可以作为存储过程的输出结果,供外部调用者使用。
三、存储过程具体逻辑的实现:
1, 在判断语句前最好先用count(*)函数判断是否存在该条操作记录
2, 用select 。。。into。。。给变量赋值
3, 在代码中抛异常用 raise+异常名