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 |