Teradata - procedura składowana
Procedura składowana zawiera zestaw instrukcji SQL i instrukcji proceduralnych. Mogą zawierać tylko oświadczenia proceduralne. Definicja procedury składowanej jest przechowywana w bazie danych, a parametry są przechowywane w tabelach słownika danych.
Zalety
Procedury składowane zmniejszają obciążenie sieci między klientem a serwerem.
Zapewnia większe bezpieczeństwo, ponieważ dostęp do danych odbywa się za pośrednictwem procedur składowanych zamiast bezpośredniego dostępu.
Zapewnia lepszą konserwację, ponieważ logika biznesowa jest testowana i przechowywana na serwerze.
Procedura tworzenia
Procedury składowane są tworzone za pomocą instrukcji CREATE PROCEDURE.
Składnia
Poniżej przedstawiono ogólną składnię instrukcji CREATE PROCEDURE.
CREATE PROCEDURE <procedurename> ( [parameter 1 data type, parameter 2 data type..] )
BEGIN
<SQL or SPL statements>;
END;
Przykład
Rozważ poniższą tabelę wynagrodzeń.
Pracownik numer | obrzydliwy | Odliczenie | Płaca netto |
---|---|---|---|
101 | 40 000 | 4000 | 36.000 |
102 | 80 000 | 6000 | 74 000 |
103 | 90 000 | 7,000 | 83 000 |
104 | 75 000 | 5000 | 70 000 |
Poniższy przykład tworzy procedurę składowaną o nazwie InsertSalary w celu zaakceptowania wartości i wstawienia do tabeli wynagrodzeń.
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;
Wykonywanie procedur
Procedury składowane są wykonywane za pomocą instrukcji CALL.
Składnia
Poniżej znajduje się ogólna składnia instrukcji CALL.
CALL <procedure name> [(parameter values)];
Przykład
Poniższy przykład wywołuje procedurę składowaną InsertSalary i wstawia rekordy do tabeli wynagrodzeń.
CALL InsertSalary(105,20000,2000,18000);
Po wykonaniu powyższego zapytania generuje następujące dane wyjściowe i można zobaczyć wstawiony wiersz w tabeli wynagrodzeń.
Pracownik numer | obrzydliwy | Odliczenie | Płaca netto |
---|---|---|---|
101 | 40 000 | 4000 | 36.000 |
102 | 80 000 | 6000 | 74 000 |
103 | 90 000 | 7,000 | 83 000 |
104 | 75 000 | 5000 | 70 000 |
105 | 20000 | 2000 | 18 000 |