SQL для начинающих


Хранимые модули



Хранимые модули

Хранимые модули (stored modules) могут содержать множество подпрограмм, т.е. процедур и (или) функций SQL. Каждый пользователь с полномочиями на выполнение модуля имеет доступ ко всем подпрограммам этого модуля. Полномочия на выполнение отдельных подпрограмм модуля предоставляться не могут. Ниже приведен пример хранимого модуля.

CREATE MODULE mod1

        PROCEDURE MatchScore

                (IN white CHAR (20),

                IN black CHAR (20),

                IN result CHAR (3),

                OUT winner CHAR (5) )

        BEGIN ATOMIC

                CASE result

                        WHEN '1-0' THEN

                                SET winner = 'white' ;

                        WHEN '1-0' THEN



                                SET winner = 'black' ;

                        ELSE

                                SET winner = 'draw' ;




                        END CASE

                END ;

        FUNCTION PurchaseHistory (CustID)

        RETURNS CHAR VARYING (200)

        BEGIN

                         DECLARE purch CHAR VARYING (200)

                                        DEFAULT '' ;

                        FOR X AS SELECT *

                                                FROM transaction t

                                                WHERE t.cuStomerlD = CustID

                        DO

                                        IF x.description <> ''



                                                THEN SET purch = purch | | ' . ' ;

                                        END IF;

                                        SET purch = purch x.description ;

                        END FOR

                        RETURN purch ;

        END ;

END MODULE ;

Подпрограммы данного модуля никак не связаны между собой. Вообще говоря, подпрограммы можно разнести по разным модулям или собрать в один модуль, независимо от того, есть у них что-нибудь общее или нет.

 

Содержание раздела