Teradata - Procédure stockée
Une procédure stockée contient un ensemble d'instructions SQL et d'instructions de procédure. Ils ne peuvent contenir que des déclarations de procédure. La définition de la procédure stockée est stockée dans la base de données et les paramètres sont stockés dans les tables de dictionnaire de données.
Avantages
Les procédures stockées réduisent la charge réseau entre le client et le serveur.
Fournit une meilleure sécurité puisque les données sont accessibles via des procédures stockées au lieu d'y accéder directement.
Donne une meilleure maintenance puisque la logique métier est testée et stockée dans le serveur.
Procédure de création
Les procédures stockées sont créées à l'aide de l'instruction CREATE PROCEDURE.
Syntaxe
Voici la syntaxe générique de l'instruction CREATE PROCEDURE.
CREATE PROCEDURE <procedurename> ( [parameter 1 data type, parameter 2 data type..] )
BEGIN
<SQL or SPL statements>;
END;
Exemple
Considérez le tableau des salaires suivant.
Numéro d'employé | Brut | Déduction | Salaire net |
---|---|---|---|
101 | 40 000 | 4 000 | 36 000 |
102 | 80 000 | 6 000 | 74 000 |
103 | 90 000 | 7 000 | 83 000 |
104 | 75 000 | 5 000 | 70 000 |
L'exemple suivant crée une procédure stockée nommée InsertSalary pour accepter les valeurs et les insérer dans la table des salaires.
CREATE PROCEDURE InsertSalary (
IN in_EmployeeNo INTEGER, IN in_Gross INTEGER,
IN in_Deduction INTEGER, IN in_NetPay INTEGER
)
BEGIN
INSERT INTO Salary (
EmployeeNo,
Gross,
Deduction,
NetPay
)
VALUES (
:in_EmployeeNo,
:in_Gross,
:in_Deduction,
:in_NetPay
);
END;
Exécution des procédures
Les procédures stockées sont exécutées à l'aide de l'instruction CALL.
Syntaxe
Voici la syntaxe générique de l'instruction CALL.
CALL <procedure name> [(parameter values)];
Exemple
L'exemple suivant appelle la procédure stockée InsertSalary et insère des enregistrements dans la table des salaires.
CALL InsertSalary(105,20000,2000,18000);
Une fois la requête ci-dessus exécutée, elle produit la sortie suivante et vous pouvez voir la ligne insérée dans la table Salary.
Numéro d'employé | Brut | Déduction | Salaire net |
---|---|---|---|
101 | 40 000 | 4 000 | 36 000 |
102 | 80 000 | 6 000 | 74 000 |
103 | 90 000 | 7 000 | 83 000 |
104 | 75 000 | 5 000 | 70 000 |
105 | 20 000 | 2 000 | 18 000 |