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