FirebirdSQL logo

ALTER PROCEDURE

Utilisation

Pour modifier une procédure stockée existante.

Disponible en

DSQL, ESQL

Syntaxe
ALTER PROCEDURE procname [(<inparam> [, <inparam> ...])]
[ RETURNS (<outparam> [, <outparam> ...]) ]
<routine-body>

Pour plus de détails, voir CREATE PROCEDURE.

L’instruction `ALTER PROCEDURE' vous permet de modifier la composition et les caractéristiques des paramètres d’entrée et de sortie, des variables locales, des curseurs nommés et du corps de la procédure stockée.Pour les procédures externes (UDR), vous pouvez modifier le point d’entrée et le nom du moteur.Les privilèges et dépendances existants sont conservés après l’exécution.

Warning

Soyez prudent lorsque vous modifiez le nombre et les types de paramètres d’entrée et de sortie des procédures stockées.Le code d’application existant peut devenir inapplicable parce que le format d’appel de procédure est incompatible avec la nouvelle description des paramètres.En outre, les modules PSQL qui utilisent la procédure stockée modifiée peuvent devenir invalides.Des informations sur la manière de détecter cela peuvent être trouvées dans l’application Field RDB$VALID_BLR.

Qui peut modifier une procédure stockée ?

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

  • administrators.

  • Le propriétaire de la procédure stockée ;

  • Les utilisateurs avec le privilège ALTER ANY PROCEDURE.

docnext count = 8

Exemples

Example 1. Modification d’une procédure stockée
ALTER PROCEDURE GET_EMP_PROJ (
    EMP_NO SMALLINT)
RETURNS (
    PROJ_ID VARCHAR(20))
AS
BEGIN
  FOR SELECT
          PROJ_ID
      FROM
          EMPLOYEE_PROJECT
      WHERE
          EMP_NO = :emp_no
      INTO :proj_id
  DO
    SUSPEND;
END

CREATE OR ALTER PROCEDURE

Objectif

Pour créer une nouvelle procédure stockée ou modifier une procédure existante.

Disponible en

DSQL, ESQL

Syntaxe
CREATE OR ALTER PROCEDURE procname [(<inparam> [, <inparam> ...])]
[ RETURNS (<outparam> [, <outparam> ...]) ]
<routine-body>

Pour plus de détails, voir CREATE PROCEDURE.

L’instruction CREATE OR ALTER PROCEDURE crée une nouvelle procédure stockée ou modifie une procédure existante.Si la procédure stockée n’existe pas, elle sera créée en utilisant la proposition CREATE PROCEDURE.S’il existe déjà, il sera modifié et compilé avec les privilèges et dépendances existants préservés.

Exemples

Example 1. Création ou modification d’une procédure stockée
CREATE OR ALTER PROCEDURE GET_EMP_PROJ (
    EMP_NO SMALLINT)
RETURNS (
    PROJ_ID VARCHAR(20))
AS
BEGIN
  FOR SELECT
          PROJ_ID
      FROM
          EMPLOYEE_PROJECT
      WHERE
          EMP_NO = :emp_no
      INTO :proj_id
  DO
    SUSPEND;
END

DROP PROCEDURE

Destination

Suppression d’une procédure stockée existante.

Disponible en

DSQL, ESQL

Syntaxe
DROP PROCEDURE procname
Table 1. Paramètres de la fonction DROP PROCEDURE
Paramètre Description

procname

Le nom de la procédure stockée.

L’instruction DROP PROCEDURE supprime une procédure stockée existante.Si des dépendances existent sur la procédure stockée, une erreur sera générée si une tentative est faite pour supprimer une telle procédure.

Qui peut supprimer une procédure stockée ?

L’instruction DROP PROCEDURE peut être exécutée :

  • <<fblangrefre-security-administrators,Administrateurs

  • Le propriétaire de la procédure stockée ;

  • Utilisateurs avec le privilège DROP ANY PROCEDURE.

Exemples

Example 1. Suppression d’une procédure stockée
DROP PROCEDURE GET_EMP_PROJ;

RECREATE PROCEDURE

Objectif

Pour créer une nouvelle procédure stockée ou recréer une procédure existante.

Disponible en

DSQL, ESQL

Syntaxe
RECREATE PROCEDURE procname [(<inparam> [, <inparam> ...])]
[ RETURNS (<outparam> [, <outparam> ...]) ]
<routine-body>

Pour plus de détails, voir CREATE PROCEDURE.

L’instruction `RECREATE PROCEDURE' crée une nouvelle procédure stockée ou recrée une procédure existante.Si une procédure portant ce nom existe déjà, l’opérateur tentera de la supprimer et de créer une nouvelle procédure.L’opération échouera lors de la confirmation de la transaction si la procédure 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.

Une fois que la procédure a été recréée, les privilèges d’exécution de la procédure stockée et les privilèges de la procédure stockée elle-même ne sont pas conservés.

Exemples

Example 1. Création d’une nouvelle procédure stockée ou recréation d’une procédure existante
RECREATE PROCEDURE GET_EMP_PROJ (
    EMP_NO SMALLINT)
RETURNS (
    PROJ_ID VARCHAR(20))
AS
BEGIN
  FOR SELECT
          PROJ_ID
      FROM
          EMPLOYEE_PROJECT
      WHERE
          EMP_NO = :emp_no
      INTO :proj_id
  DO
    SUSPEND;
END