:
CREATE PROCEDURE
[ (_ _
[, _ _ ]) ]
[ RETURNS
(_ _
[, _ _ ]) ]
AS
[< >]
BEGIN
< >
[ < > ]
END;
:
CREATE PROCEDURE FIND_MAX_KOLVO (IN_TOVAR VARCHAR(20))
RETURNS (MAX_KOLVO INTEGER)
AS
BEGIN
SELECT MAX(KOLVO)
FROM RASHOD
WHERE TOVAR =:IN_TOVAR
INTO:MAX_KOLVO;
SUSPEND;
END;
. . .
:
DECLARE VARIABLE < > < >;
:
CREATE PROCEDURE FULL_ADR (TOVAR VARCHAR(20))
RETURNS GOROD_ADRES VARCHAR(40)) AS
DECLARE VARIABLE NAIDEN_POKUPATEL VARCHAR(20);
DECLARE VARIABLE MAX_KOLVO INTEGER;
BEGIN
.
END;
:
BEGIN
...
END;
:
_ = ;
.
OUT_TOVAR = UPPER(TOVAR);
:
IF (< >) THEN < 1>
[ELSE < 2 > ]:
SELECT
SELECT . SELECT :
INTO: [, ]
:
SELECT AVG(KOLVO), SUM(KOLVO)
FROM RASHOD
WHERE TOVAR =:IN_TOVAR
INTO:AVG_KOLVO,:SUM_KOLVO;
FOR SELECT DO
FOR < SELECT >
DO < >;
SELECT INTO. , DO. SUSPEND, .
:
CREATE PROCEDURE RASHOD_TOVARA (IN_TOVAR VARCHAR(20))
RETURNS (OUT_DAT DATE, OUT_POKUP VARCHAR(20),
OUT_KOLVO INTEGER) AS
BEGIN
FOR SELECT DAT_RASH, POKUP, KOLVO FROM RASHOD
WHERE TOVAR =:IN_TOVAR
INTO:OUT_DAT,:OUT_POKUP,:OUT_KOLVO
DO
SUSPEND;
END
SUSPEND
SUSPEND ( RETURNS ), SUSPEND. SELECT , .
:
CREATE PROCEDURE POK_LIST (IN_TOVAR VARCHAR(20))
RETURNS (POK VARCHAR(20)) AS
DECLARE VARIABLE AVG_KOLVO INTEGER;
BEGIN
SELECT AVG(KOLVO) FROM RASHOD
WHERE TOVAR =:IN_TOVAR
|
|
INTO:AVG_KOLVO;
FOR SELECT POKUP FROM RASHOD
WHERE KOLVO >=:AVG_KOLVO
INTO:POK
DO
BEGIN
IF (:POK IS NULL) THEN
POK = ;
SUSPEND;
END
END
WHILE DO
WHILE (<>) DO
< >;
. . .
:
CREATE PROCEDURE SUM_0_N (N INTEGER)
RETURNS (S INTEGER) AS
DECLARE VARIABLE TMP INTEGER;
BEGIN
S = 0;
TMP=1;
WHILE (TMP <= N) DO
BEGIN
S = S+TMP;
TM = TPM + 1;
END
END
EXIT
EXIT .
:
CREATE PROCEDURE MAX_VALUE ( INTEGER, B INTEGER)
RETURNS (M_V INTEGER) AS
DECLARE VARIABLE TMP INTEGER;
BEGIN
IF (:A IS NULL OR:B IS NULL) THEN EXIT;
IF (:A >:B) THEN M_V =:A;
ELSE M_V =:B;
END