оператор SELECT) және шығыс мәндерін
қоңырау бағдарламасына
жібереді.
Трафиктер мен сақталған процедуралар операторды пайдаланған
кезде сақталатын процедураларды шақыруы мҥмкін EXECUTE
PROCEDURE:
EXECUTE PROCEDURE <шара атауы>
[(<параметр> [, <параметр>] . . .) ]
[RETURNING_VALUES (<параметр>[,<параметр>]...)
| <параметр>[,<параметр >...]]
FOR SELECT DO операторы тӛмендегідей форматтары бар:
FOR
<оператор SELECT>
DO
<оператор>
FOR SELECT DO сӛзінің алгоритмі келесідей.
SELECT операторы
орындалады және алынған нәтижелер жиынының әр жолы ҥшін DO
сӛзі орындалатын операнд орындалады. Бҧл оператор жиі SUSPEND
болып табылады, бҧл шығыс параметрлерін
шақыру қосымшасына
қайтаруға әкеледі.
Бар сақталған процедураны ӛзгерту ҥшін ALTER PROCEDURE
операторын қолданыңыз. Бар сақталған процедураны жою ҥшін DROP
PROCEDURE операторын қолданыңыз. Сақталған процедураларды
жасаудың кейбір мысалдары берілген.
Келесі рәсім тауар_кіріс параметрінің мазмҧнымен
анықталған
белгілі бір ӛнімді сатуға арналған барлық фактілерді береді.
CREATE PROCEDURE PRODAJA_TOVARA (Товар_вход VARCHAR
(20) )
RETURNS (кҥні_шығыс DATE, Тҧтынушы_шығыс VARCHAR (2 0) ,
саны_шығыс INTEGER) AS
BEGIN
FOR SELECT Кҥні, Тҧтынушы, Саны FROM Сатылымдар
WHERE Тауар =:Тауар_кіріс
INTO :Кҥні_шығыс, :Тҧтынушы_шығыс, :Саны_шығыс DO
SUSPEND;
END
Біріншіден, SELECT мәлімдемесі орындалады, ол сату кҥнін, сатып
алушының атын және шығыс сомасын қайтаратын
280
Тауарлар ҥлгілері Тауар_шығыс параметрінің кіріс параметріндегі
мәнмен бірдей мәнді қамтитын әр енгізу ҥшін тауарлар Кӛрсетілген
мәндер
шығыс
параметрлеріне
жазылады
(Кҥні_шығыс,
тҧтынушы_шығыс, Номер_шығыс).
Нәтижелердің әрбір жазбасын
жазғаннан кейін, SUSPEND мәлімдемесі орындалады. Шығарылатын
параметр параметрлерін шақыру бағдарламасына қайтарады және
шығыс параметрлерінің келесі бӛлігін
шақыру бағдарламасынан
сҧрағанға дейін рәсімнің орындалуын тоқтатады. ол шақырушы
қосымшаға кіру параметрлерін бірнеше мәндерді қайтаруға болады,
ӛйткені бҧл процедура таңдау рәсім болып табылады.
Тағы бір процедура Тҧтынушы_кіріс
тауарларды сатып алған
барлық клиенттердің атауын осы ӛнімнің орташа сатып алу
мӛлшерінен асатын соманы қайтарады. Клиенттік атау клиенттің
атауының
орнына бос мән болса, «Деректер кӛрсетілмейді».
CREATE PROCEDURE Тҧтынушы_тізім (Тауар_кіріс VAR-
CHAR(20))
RETURNS (Тҧтынушы_шығыс VARCHAR(20)) AS
DECLARE VARIABLE Орта_саны INTEGER;
BEGIN
SELECT AVG(саны)
FROM Сатылымдар
WHERE Тауар =:Тауар_кіріс
INTO :Орташа_саны;
FOR
SELECT
Тҧтынушылар
FROM
Сатылымдар
WHERE Саны >: Орташа_саны INTO
:Тҧтынушы_шығыс DO
BEGIN
IF (: Тҧтынушы_шығыс IS NULL) THEN
Тҧтынушы_шығыс = «деректер жоқ»;
SUSPEND;
END
END
Сақталған процедуралардың артықшылығы, олар бірінші кезекте
серверлік
жағынан орындалады, бҧл кӛптеген жағдайларда желілік
трафикті айтарлықтай тӛмендетеді; Екіншіден,
бір рет жазылған және
жақсы сақталған сақталған процедураны пайдалануға болады
Достарыңызбен бөлісу: