FirebirdSQL logo
 TRIGGERFUNCTION 

Qui peut créer une procédure stockée ?

L’instruction `CREATE PROCEDURE' peut être exécutée :

L’utilisateur qui a créé la procédure stockée devient son propriétaire.

Exemples

Example 1. Création d’une procédure stockée
CREATE PROCEDURE ADD_BREED (
  NAME D_BREEDNAME, /* Les caractéristiques du domaine sont héritées */
  NAME_EN TYPE OF D_BREEDNAME, /* Seul le type de domaine est hérité */
  SHORTNAME TYPE OF COLUMN BREED.SHORTNAME, /* Hérite du type de colonne de table */
  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

Idem, mais la procédure sera exécutée avec les droits de l’utilisateur qui la définit (propriétaire de la procédure).

CREATE PROCEDURE ADD_BREED (
  NAME D_BREEDNAME, /* Les caractéristiques du domaine sont héritées */
  NAME_EN TYPE OF D_BREEDNAME, /* Seul le type de domaine est hérité */
  SHORTNAME TYPE OF COLUMN BREED.SHORTNAME, /* Hérite du type de colonne de table */
  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
Example 2. Création d’une procédure stockée externe
Créer une procédure située dans un module externe (UDR). L’implémentation de la procédure se trouve dans le module externe udrcpp_example. Le nom de la procédure à l’intérieur du module est gen_rows.
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;