Создание структуры БД и манипулирование данными в СУБД MySQL. Пономарев А.А. - 55 стр.

UptoLike

Составители: 

CALL sp_name([parameter[,...]])
CALL sp_name[()]
Оператор CALL позволяет вызвать ранее определенную процедуру.
Пример1
CREATE PROCEDURE p1 (OUT ver_param VARCHAR(25), INOUT incr_param INT)
BEGIN
# Set value of OUT parameter
SELECT VERSION() INTO ver_param;
# Increment value of INOUT parameter
SET incr_param = incr_param + 1;
END;
Перед вызовом процедуры инициализируйте переменную указанные в параметрах INOUT .
После вызова процедуры значения будут установлены или изменены.
mysql> SET @increment = 10;
mysql> CALL p(@version, @increment);
mysql> SELECT @version, @increment;
+-----------------+------------+
| @version | @increment |
+-----------------+------------+
| 5.1.12-beta-log | 11 |
Пример2
CREATE PROCEDURE `p2`(IN param1 CHAR(2) )
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
BEGIN
select * from s where snum=param1;
END;
Вызов процедуры
call p2 ('S1')
Пример3
CREATE PROCEDURE `My_proc2`(IN param1 CHAR(2) )
BEGIN /* start of block */
DECLARE variable1 CHAR(10); /* variables */
IF param1 = 17 THEN /* start of IF */
SET variable1 = 'birds'; /* assignment */
ELSE
SET variable1 = 'beasts'; /* assignment */
END IF; /* end of IF */
select variable1; /* statement */
END
Вызов процедуры
call p3 (10)
55