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