子程序结构跟 STORED PROCEDURE 结构一致,包括:
- 声明部分(可选)
声明部分包括类型、常量、变量、异常、显式游标和嵌套子程序的声明。这些项对于子程序都是本地的,当子程序执行结束时就都不存在了。
- 执行部分(必选)
执行部分包括赋值语句、控制执行语句和数据操作语句。
- 异常处理部分(可选)
异常处理部分包括处理异常(运行时错误)的代码。
在子程序中添加注释会增加程序的可读性,注释可以出现在 STORED PROCEDURE 子程序的任意位置,STORED PROCEDURE 编译器会忽略注释。单行注释是以双横线(—)开头的,注释范围到行尾截止。多行注释可以以斜杠和星号(/*)开头,以星号和斜杠(*/)结尾。
一个存储过程的结构如下:
PROCEDURE name [ ( parameter_list ) ]
{ IS | AS }
[ declarative_part ]
BEGIN -- executable part begins
statement; [ statement; ]...
[ EXCEPTION ]
exception_handler; [ exception_handler; ]... ]
END;
函数的结构如下,与存储过程相比,多了至少一个 RETURN 子句:
FUNCTION name [ ( parameter_list ) ] RETURN data_type [ clauses ]
{ IS | AS }
[ declarative_part ]
BEGIN
-- 至少有一句 RETURN 语句
statement; [ statement; ]...
[ EXCEPTION ]
exception_handler; [ exception_handler; ]... ]
END;
PROCEDURE 和 FUNCTION 跟 IS | AS 之间的代码是子程序的声明,声明部分、执行部分和异常处理部分是子程序的内容体。