Le corps de la fonction stockée
Le mot clé "AS" est suivi du corps de la fonction stockée.
Le mot clé "AS" est suivi du corps de la fonction stockée.
La section optionnelle <déclarations> décrit les variables locales des fonctions, les curseurs nommés et les sous-programmes (sous-procédures et sous-fonctions). Les variables locales sont soumises aux mêmes règles que les paramètres des fonctions d’entrée en ce qui concerne la spécification du type de données. Pour plus de détails, voir "Langage procédural PSQL" dans les sections DECLARE VARIABLE etDECLARE CURSOR,DECLARE PROCEDURE,DECLARE FUNCTION.
Une section de déclaration facultative est nécessairement suivie d’une instruction composée. Une instruction composée consiste en une ou plusieurs instructions PSQL comprises entre les mots-clés BEGIN
et END
. Une instruction composée peut contenir une ou plusieurs autres instructions composées. L’imbrication est limitée à 512 niveaux. Toute instruction BEGIN … END
peuvent être vides, y compris le bloc principal.
Une fonction stockée peut être située dans un module externe. Dans ce cas, au lieu du corps de la fonction, l’emplacement de la fonction dans le module externe est spécifié en utilisant la phrase EXTERNAL NAME
. L’argument de cette phrase est une chaîne de caractères avec le nom du module externe, le nom de la fonction dans le module et des informations définies par l’utilisateur séparées par un séparateur. La phrase ENGINE
spécifie le nom du plug-in pour gérer les modules externes. Dans Firebird, le plug-in pour gérer les modules externes est UDR. Après le mot clé AS
, une chaîne de caractères peut être spécifiée
Warning
|
Les fonctions externes déclarées comme |
ALTER FUNCTION
Modifier une fonction stockée existante.
DSQL
ALTER FUNCTION funcname [(<inparam> [, <inparam> ...])] RETURNS <type> [COLLATE collation] [DETERMINISTIC] <routine-body> Pour plus d'informations, voir. CREATE FUNCTION.
L’instruction ALTER FUNCTION
permet de modifier la composition et les caractéristiques des paramètres d’entrée, le type de valeur de sortie, les variables locales, les curseurs nommés, les sous-programmes et le corps de la fonction stockée. Pour les fonctions externes (UDR), vous pouvez modifier le point d’entrée et le nom du moteur. Les fonctions externes déclarées comme DECLARE EXTERNAL FUNCTION
, également connues sous le nom d’UDF, ne peuvent pas être converties en fonctions PSQL et vice versa. Une fois exécutées, les privilèges et dépendances existants sont conservés.
Note
|
Soyez prudent lorsque vous modifiez le nombre et les types de paramètres d’entrée des fonctions stockées. Le code d’application existant peut devenir inapplicable car le format d’appel de la fonction est incompatible avec la nouvelle description des paramètres. De plus, les modules PSQL utilisant la fonction stockée modifiée peuvent devenir invalides. Des informations sur la façon de détecter cela peuvent être trouvées dans Field RDB$VALID_BLR. |
Warning
|
Si vous avez déjà une fonction externe de style Legacy ( |
L’instruction ALTER FUNCTION
peut être exécutée :
Le propriétaire de la fonction stockée ;
Les utilisateurs ayant le privilège ALTER ANY FUNCTION
.
ALTER FUNCTION ADD_INT(A INT, B INT, C INT)
RETURNS INT
AS
BEGIN
RETURN A+B+C;
END
CREATE OR ALTER FUNCTION
Créez une nouvelle fonction stockée ou modifiez une fonction stockée existante.
DSQL
CREATE OR ALTER FUNCTION funcname [(<inparam> [, <inparam> ...])] RETURNS <type> [COLLATE collation] [DETERMINISTIC] <routine-body> Pour plus d'informations, voir. CREATE FUNCTION.
L’instruction CREATE OR ALTER FUNCTION
crée une nouvelle fonction stockée ou modifie une fonction stockée existante. Si la fonction stockée n’existe pas, elle sera créée à l’aide de l’instruction CREATE FUNCTION
. Si elle existe déjà, elle sera modifiée et recompilée, tout en préservant les privilèges et dépendances existants.
Warning
|
Si vous avez déjà une fonction externe de style Legacy ( |
CREATE OR ALTER FUNCTION ADD_INT(A INT, B INT DEFAULT 0)
RETURNS INT
AS
BEGIN
RETURN A+B;
END
DROP FUNCTION
Suppression d’une fonction stockée.
DSQL
DROP FUNCTION funcname
Paramètre | Description |
---|---|
funcname |
Le nom de la fonction stockée. |
L’instruction DROP FUNCTION
supprime une fonction stockée existante. S’il y a des dépendances sur une fonction stockée, une erreur sera générée lorsque vous essayez de supprimer une telle fonction.
L’instruction DROP FUNCTION
peut être exécutée :
Le propriétaire de la fonction stockée ;
Les utilisateurs ayant le privilège DROP ANY FUNCTION
.
DROP FUNCTION ADD_INT;
RECREATE FUNCTION
Créez une nouvelle fonction stockée ou recréez une fonction stockée existante.
DSQL
RECREATE FUNCTION funcname [(<inparam> [, <inparam> ...])] RETURNS <type> [COLLATE collation] [DETERMINISTIC] <routine-body> Pour plus d'informations, voir. CREATE FUNCTION
L’instruction RECREATE FUNCTION
crée une nouvelle fonction stockée ou recrée une fonction existante. Si une fonction portant ce nom existe déjà, l’instruction tentera de la supprimer et de créer une nouvelle fonction. L’opération échouera lors de la confirmation de la transaction si la fonction a des dépendances.
Note
|
Notez que les erreurs de dépendance ne sont pas détectées avant la phase de confirmation de la transaction. |
Après la recréation d’une fonction, les privilèges d’exécution de la fonction stockée et les privilèges de la fonction stockée elle-même ne sont pas conservés.
RECREATE FUNCTION ADD_INT(A INT, B INT DEFAULT 0)
RETURNS INT
AS
BEGIN
RETURN A+B;
END