FirebirdSQL logo
Corps du module PSQL

Le corps PSQL commence par une section facultative dans laquelle sont déclarés les variables, les curseurs et les sous-programmes. Cette section est suivie d’un bloc d’instructions, qui sont exécutées dans une séquence logique en tant que programme. Le bloc d’instructions - ou instruction composée - est entouré des mots-clés BEGIN et END et est exécuté comme un seul bloc de code. Le bloc principal BEGIN …​ END peut contenir un nombre quelconque d’autres blocs BEGIN …​ END, soit en ligne ou séquentiel. L’imbrication maximale des blocs est de 512 niveaux. Toutes les instructions sauf BEGIN et END se terminent par un point-virgule (“;”). Aucun autre caractère ne peut être utilisé comme terminaison pour les instructions PSQL.

Modifier le terminateur dans isql

Nous allons faire une petite digression ici pour expliquer comment changer le terminateur dans l’utilitaire isql. Ceci est nécessaire pour pouvoir définir des modules PSQL dans celui-ci sans entrer en conflit avec isql lui-même, qui utilise le même symbole, le point-virgule ( ;), comme séparateur d’instruction.

Commande isql : "SET TERM".

Destination

Changez le(s) caractère(s) de terminaison pour éviter tout conflit avec le terminateur dans les instructions PSQL.

Disponible en

ISQL.

Syntaxe
SET TERM new_terminator old_terminator
Table 1. Paramètres de l’instruction SET TERM
Paramètre Description

new_terminator

La nouvel terminaison.

old_terminator

L’ancienne terminaison.

Lors de l’écriture de déclencheurs et de procédures stockées dans les textes de script qui créent les objets de base de données nécessaires pour éviter toute ambiguïté sur l’utilisation des Instructions de terminaison (par les normes SQL est un point-virgule) utilisé Instruction SET TERM , qui à proprement parler n’est pas un Instruction SQL, et la commande outil interactif isql.Cet Instruction définit un caractère ou une chaîne de caractères à la fin du texte du déclencheur ou de la procédure stockée avant de créer le déclencheur ou la procédure stockée. Après avoir décrit le texte de l’objet de programme correspondant avec le même Instruction SET TERM, la valeur du terminateur redevient un point-virgule.

Le terminateur alternatif peut être n’importe quelle chaîne de caractères arbitraire, à l’exception des points-virgules, des espaces et des apostrophes. Si vous utilisez un caractère alphabétique, il sera sensible à la casse.

Example 1. Affectation d’une terminaison alternatif
SET TERM ^;

CREATE OR ALTER PROCEDURE SHIP_ORDER (
    PO_NUM CHAR(8))
AS
BEGIN
  /* Corps de la procédure stockée */
END^

/* Autres procédures stockées et déclencheurs */

SET TERM ;^

/* Autres instructions DDL */