存储过程是一组可以完成特定功能的 SQL 语句集, 经编译后存储在数据库中。用户在执行存储过程时,需要指定存储过程的名称并给出参数(如果存储过程里包含参数)
存储过程创建的语法格式如下示例:
CREATE PROCEDURE <proc_name>([<parameter_1>[,…] [,parameter_n]])
[characteristic …]
BEGIN
<过程定义>
END
参数说明
1、<proc_name>、 <func_name>要创建的存储过程的名称。在同一数据库内,存储过程
的名称必须唯一。存储过程名称只允许 a~z、 A~Z、 0~9、下划线,且不能只包含
数字;
2、([<parameter_1>[,…] [,parameter_n]])定义存储过程的参数,每一个参数的定义格式
是: <参数方向><参数名称><参数数据类型>;
3、存储过程的<参数方向>确定参数是输入、输出还是输入输出,只能取 IN、 OUT、
INOUT 中的一个。函数的<参数方向>只能是输入 IN;
4、<参数名称>在同一个存储过程中必须唯一,只允许 a~z、 A~Z、 0~9、下划线,且
不能只包含数字;
5、<参数数据类型>指定参数的数据类型;
6、<过程定义>、 <函数定义>是一系列的 SQL 语句的组合,其中包含一些数据操作以完
成一定的功能逻辑;
7、定义存储过程时,存储过程名后面的括号是必需的,即使没有任何参数,也不能省
略;GBase 8a MPP Cluster 产品手册 6 故障管理
8、如果存储过程、函数中的<过程定义>仅包含一条 SQL 语句,则可以省略 BEGIN 和
END,否则,在定义存储过程时,必须使用 BEGIN…END 结构把相关的 SQL 语句
组织在一起形成<过程定义>;
9、存储过程、函数可以嵌套;
10、type 是 GBase 8a MPP Cluster 支持的数据类型
GBase 8a MPP Cluster 使用 CALL 语句调用存储过程,语法格式如下所示:
CALL [database_name.]proc_name([<参数列表>])