CALL 语句
CALL语句调用一个存储过程。
语法
描述
- 程序名
- 标识要调用的存储过程。 过程名称必须标识当前服务器上存在的存储过程。
- 参数列表
- 确定作为参数传递给存储过程的值列表。 参数数量必须与存储过程定义的参数数量相同。 更多信息请参阅 CALL语句。
根据SQL程序的调用约定,控制权将传递给存储过程。 当存储过程的执行完成时,存储过程的每个参数的值将分配给定义为OUT或INOUT的CALL语句的相应参数。
- SQL-variable-name
- 将SQL变量指定为存储过程的参数。 有关SQL变量引用的说明,请参阅外部SQL程序中SQL参数和SQL变量的引用。
- SQL-parameter-name
- 将SQL参数指定为存储过程的参数。 关于SQL参数的说明,请参阅外部SQL程序中SQL参数和SQL变量的引用。
- 表达式
- 参数是指定表达式的结果,在调用存储过程之前进行计算。 如果表达式 是一个SQL参数名或 SQL变量名 ,则可以将过程的相应参数定义为IN、INOUT或OUT。 否则,必须将相应参数定义为IN。 如果表达式的结果可以为空值,则必须允许空参数,或者将存储过程的相应参数定义为输出参数。
根据在CREATE PROCEDURE语句中为过程定义的相应参数,以下附加规则适用:
- IN 表达式可以包含多个SQL参数或变量的引用。 除了表达式中所述的规则之外, 表达式不能包含列名、聚合函数或源自聚合函数的用户定义函数。
- INOUT或OUT 表达式只能是一个SQL参数或变量。
- NULL
- 参数为空值。 该过程的相应参数必须定义为IN,并且该过程的描述必须允许空参数。
注意
有关SQL CALL语句的更多信息,请参阅 CALL语句。
示例
调用存储过程 proc1 ,并将SQL变量作为参数传递。
CALL proc1(v_empno, v_salary)