Teradata - Procedura memorizzata

Una procedura memorizzata contiene una serie di istruzioni SQL e istruzioni procedurali. Possono contenere solo dichiarazioni procedurali. La definizione della procedura memorizzata viene memorizzata nel database ei parametri vengono memorizzati nelle tabelle del dizionario dei dati.

Vantaggi

  • Le stored procedure riducono il carico di rete tra il client e il server.

  • Fornisce una maggiore sicurezza poiché si accede ai dati tramite procedure memorizzate invece di accedervi direttamente.

  • Offre una migliore manutenzione poiché la logica aziendale viene testata e archiviata nel server.

Procedura di creazione

Le stored procedure vengono create utilizzando l'istruzione CREATE PROCEDURE.

Sintassi

Di seguito è riportata la sintassi generica dell'istruzione CREATE PROCEDURE.

CREATE PROCEDURE <procedurename> ( [parameter 1 data type, parameter 2 data type..] ) 
BEGIN 
   <SQL or SPL statements>; 
END;

Esempio

Considera la seguente tabella dei salari.

EmployeeNo Schifoso Deduzione Retribuzione netta
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'esempio seguente crea una stored procedure denominata InsertSalary per accettare i valori e inserirli nella tabella Salary.

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;

Esecuzione delle procedure

Le stored procedure vengono eseguite utilizzando l'istruzione CALL.

Sintassi

Di seguito è riportata la sintassi generica dell'istruzione CALL.

CALL <procedure name> [(parameter values)];

Esempio

L'esempio seguente chiama la stored procedure InsertSalary e inserisce i record nella tabella Salary.

CALL InsertSalary(105,20000,2000,18000);

Una volta eseguita la query di cui sopra, produce il seguente output e puoi vedere la riga inserita nella tabella Salary.

EmployeeNo Schifoso Deduzione Retribuzione netta
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