Хранимые функции
Хранимые функции
Хранимые функции (stored functions) аналогичны хранимым процедурам. Вместе они называются хранимыми подпрограммами. Они имеют ряд отличий, например, они отличаются по способу их вызова. Хранимые процедуры вызываются в операторе CALL, а хранимые функции могут являться аргументом оператора SQL. Ниже представлен пример определения функции, сопровождаемый примером обращения к этой функции.
CREATE FUNCTION PurchaseHistory (CustID)
RETURNS CHAR VARYING (200)
BEGIN
DECLARE purch CHAR VARYING (200)
DEFAULT '' ;
FOR x AS SELECT *
FROM transaction t
WHERE t.customerID = CustID
DO
IF x.description <> ''
THEN SET purch=purch ',' ;
END IF ;
SET purch=purch x.description ;
END FOR
RETURN purch ;
END ;
Функция, заданная подобным образом, сводит воедино описания всех покупок, произведенных клиентом с определенным идентификационным номером, выбранным из таблицы TRANSACTIONS. Следующая команда, содержащая вызов функции PurchaseHistory, заносит в таблицу информацию о всех покупках, сделанных клиентом с идентификационным номером 314259:
SET customerID=3142 59 ;
UPDATE customer
SET history=PurchaseHistory (customerlD)
WHERE customerID=314259 ;