Примеры
CREATE PROCEDURE ADD_BREED (
NAME D_BREEDNAME, /* Наследуются характеристики домена */
NAME_EN TYPE OF D_BREEDNAME, /* Наследуется только тип домена */
SHORTNAME TYPE OF COLUMN BREED.SHORTNAME, /* Наследуется тип столбца таблицы */
REMARK VARCHAR(120) CHARACTER SET WIN1251 COLLATE PXW_CYRL,
CODE_ANIMAL INT NOT NULL DEFAULT 1
)
RETURNS (
CODE_BREED INT
)
AS
BEGIN
INSERT INTO BREED (
CODE_ANIMAL, NAME, NAME_EN, SHORTNAME, REMARK)
VALUES (
:CODE_ANIMAL, :NAME, :NAME_EN, :SHORTNAME, :REMARK)
RETURNING CODE_BREED INTO CODE_BREED;
END
То же самое, но процедура будет выполняться с правами определяющего пользователя (владельца процедуры).
CREATE PROCEDURE ADD_BREED (
NAME D_BREEDNAME, /* Наследуются характеристики домена */
NAME_EN TYPE OF D_BREEDNAME, /* Наследуется только тип домена */
SHORTNAME TYPE OF COLUMN BREED.SHORTNAME, /* Наследуется тип столбца таблицы */
REMARK VARCHAR(120) CHARACTER SET WIN1251 COLLATE PXW_CYRL,
CODE_ANIMAL INT NOT NULL DEFAULT 1
)
RETURNS (
CODE_BREED INT
)
SQL SECURITY DEFINER
AS
BEGIN
INSERT INTO BREED (
CODE_ANIMAL, NAME, NAME_EN, SHORTNAME, REMARK)
VALUES (
:CODE_ANIMAL, :NAME, :NAME_EN, :SHORTNAME, :REMARK)
RETURNING CODE_BREED INTO CODE_BREED;
END
CREATE PROCEDURE gen_rows (
start_n INTEGER NOT NULL,
end_n INTEGER NOT NULL
) RETURNS (
n INTEGER NOT NULL
)
EXTERNAL NAME 'udrcpp_example!gen_rows'
ENGINE udr;