Procedures
存储过程是与数据库关联存储的一组SQL语句.它是一个用CREATE PROCEDURE语句创建并用CALL statement调用的对象.一个过程可以有零个或多个输入参数和零个或多个输出参数.
Syntax:
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
proc_parameter:
[ IN | OUT | INOUT ] param_name type
func_parameter:
param_name type
type:
Any valid MySQL data type
characteristic:
COMMENT 'string'
| LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
routine_body:
Valid SQL routine statement
DELIMITER
要定义存储过程,需要临时修改用于分隔SQL语句的分隔符.
SQL中使用的默认分隔符是分号(;).在我们将要执行的示例中,我们将使用字符$$来分隔SQL语句,但也可以使用任何其他字符.
Example :
在本例中,我们将$$字符设置为SQL语句之间的分隔符.
DELIMITER $$
在本例中,我们再次配置分隔符为分号.
DELIMITER ;
Input, output and input/output parameters
在存储过程中,我们可以有三种类型的参数:
Input :通过将保留字放在参数名称前面来表示它们.这些参数不能在过程中更改其值,也就是说,当过程结束时,这些参数的值将与进行过程调用时的值相同.在编程中,这相当于传递一个参数的值
Output :它们通过将保留字放在参数名称前面来表示.这些参数会在过程中更改其值.当进行过程调用时,它们以初始值开始,当过程执行结束时,它们可以以不同的值结束.在编程中,这相当于通过引用传递参数.
Input/Output :它是输入和输出类型的组合.这些参数通过在参数名称前输入/输出保留字来表示.
Anonymous PL/SQL blocks
我们将从匿名块开始,其特点是它们没有名称,通常是从PL/SQL创建和执行的.
I will explain what each one does in detail :
我希望这一切都对你有所帮助,祝你好运.