Teradata - Saklanan Prosedür

Bir saklı yordam, bir dizi SQL deyimi ve yordamsal deyim içerir. Yalnızca usule ilişkin ifadeler içerebilirler. Depolanan prosedürün tanımı veritabanında saklanır ve parametreler veri sözlüğü tablolarında depolanır.

Avantajlar

  • Saklanan prosedürler, istemci ve sunucu arasındaki ağ yükünü azaltır.

  • Verilere doğrudan erişmek yerine depolanan prosedürler aracılığıyla erişildiği için daha iyi güvenlik sağlar.

  • İş mantığı test edilip sunucuda saklandığı için daha iyi bakım sağlar.

Prosedür Oluşturma

Depolanan Yordamlar, CREATE PROCEDURE deyimi kullanılarak oluşturulur.

Sözdizimi

Aşağıda, CREATE PROCEDURE ifadesinin genel sözdizimi verilmiştir.

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

Misal

Aşağıdaki Maaş Tablosunu düşünün.

Çalışan Hayır Brüt Kesinti Net ödeme
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

Aşağıdaki örnek, değerleri kabul etmek ve Maaş Tablosuna eklemek için InsertSalary adında bir saklı yordam oluşturur.

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;

Yürütme Prosedürleri

Depolanan Prosedürler CALL deyimi kullanılarak yürütülür.

Sözdizimi

Aşağıda, CALL ifadesinin genel sözdizimi verilmiştir.

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

Misal

Aşağıdaki örnek, saklı yordamı InsertSalary çağırır ve kayıtları Maaş Tablosuna ekler.

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

Yukarıdaki sorgu yürütüldüğünde, aşağıdaki çıktıyı üretir ve eklenen satırı Maaş tablosunda görebilirsiniz.

Çalışan Hayır Brüt Kesinti Net ödeme
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