Teradata - Gespeicherte Prozedur

Eine gespeicherte Prozedur enthält eine Reihe von SQL-Anweisungen und prozeduralen Anweisungen. Sie dürfen nur Verfahrenserklärungen enthalten. Die Definition der gespeicherten Prozedur wird in der Datenbank gespeichert und die Parameter werden in Datenwörterbuchtabellen gespeichert.

Vorteile

  • Gespeicherte Prozeduren reduzieren die Netzwerklast zwischen Client und Server.

  • Bietet eine bessere Sicherheit, da auf die Daten über gespeicherte Prozeduren zugegriffen wird, anstatt direkt darauf zuzugreifen.

  • Bietet eine bessere Wartung, da die Geschäftslogik getestet und auf dem Server gespeichert wird.

Prozedur erstellen

Gespeicherte Prozeduren werden mit der Anweisung CREATE PROCEDURE erstellt.

Syntax

Es folgt die generische Syntax der Anweisung CREATE PROCEDURE.

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

Beispiel

Betrachten Sie die folgende Gehaltsliste.

EmployeeNo Brutto Abzug Nettogehalt
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

Im folgenden Beispiel wird eine gespeicherte Prozedur mit dem Namen InsertSalary erstellt, um die Werte zu akzeptieren und in die Gehaltstabelle einzufügen.

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;

Prozeduren ausführen

Gespeicherte Prozeduren werden mit der Anweisung CALL ausgeführt.

Syntax

Es folgt die generische Syntax der CALL-Anweisung.

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

Beispiel

Im folgenden Beispiel wird die gespeicherte Prozedur InsertSalary aufgerufen und Datensätze in die Salary Table eingefügt.

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

Sobald die obige Abfrage ausgeführt wurde, wird die folgende Ausgabe ausgegeben, und Sie können die eingefügte Zeile in der Gehaltstabelle sehen.

EmployeeNo Brutto Abzug Nettogehalt
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