关于对oracle procedure存储过程的小结
一.基本语法:
CREATE OR REPLACE PROCEDURE + 存储过程名字 + ( 参数1 IN/OUT 数据类型, 参数2 IN/OUT 数据类型 ) AS
变量1 数据类型(取值范围);
变量2 数据类型(取值范围);
Begin
可执行语句;
Exception
异常处理程序;
End;
注释:
1.参数的IN表示是传入的参数,OUT表示的是本存储过程结束后,需要输出的参数.
2.给变量赋值的时候要用,select… into语句
3.抛出异常用raise+异常名
二.常用的语句
1.IF判断语句
常用的几种IF判断语句形式:
IF THEN END IF
IF THEN ELSE END IF
IF THEN ELSIF ELSE END IF
例子:
IF V1=1 THEN
BEGIN
执行语句;
END;
END IF;
…
2.常用case语句的两种形式
CASE 选择变量名
WHEN 表达式1 THEN 语句1
WHEN 表达式2 THEN 语句2
…
WHEN 表达式n THEN 语句n
ELSE 语句n+l
END CASE;
变量:=CASE 选择变量名
WHEN 表达式1 THEN 值1
WHEN 表达式2 THEN 值2
…
WHEN 表达式n THEN 值n
ELSE 值n+l
END CASE;
3.while循环语句
WHILE V1=1 LOOP
BEGIN
循环语句;
END;
END LOOP;
4.LOOP循环
LOOP
循环体;
EXIT WHEN 终止条件,true则终止;
循环条件必须更改;
END LOOP;
注释:循环先执行一次之后再进行判断相当于do…while,如果没有WHEN 条件,遇到EXIT 语句则无条件退出循环。
5.FOR循环
FOR 控制变量 in [REVERSE] 下限..上限LOOP
语句1;
语句2;
……
END LOOP;
注释:循环变量被隐式定义为integer类型的局部变量,缺省情况下,循环变量从初始值以1的增量递增到结束值,如果使用关键字reverse,则循环从结束值以1的减量递减到初始值。
循环控制变量是隐含定义的,不需要要声明。下限和上限用于指明循环次数.正常情况下循环控制变量的取值由下限到上限递增,REVERSE 关键字表示循环控制变量的取值由上限到下限递减.
6.EXIT和EXIT WHEN的区别:
EXIT:无条件终止语句,当遇到一个exit语句,则立即终止当前的循环。
EXIT WHEN:有条件终止语句,当遇到exit when语句时,首先检测when子句中的条件,为true则终止。