Teradata - Makrolar

Makro, Makro adını çağırarak saklanan ve çalıştırılan bir SQL deyimleri kümesidir. Makroların tanımı Veri Sözlüğü'nde saklanır. Kullanıcılar, Makroyu yürütmek için yalnızca EXEC ayrıcalığına ihtiyaç duyar. Kullanıcılar, Makro içinde kullanılan veritabanı nesneleri üzerinde ayrı ayrıcalıklara ihtiyaç duymazlar. Makro ifadeleri tek bir işlem olarak yürütülür. Makrodaki SQL ifadelerinden biri başarısız olursa, tüm ifadeler geri alınır. Makrolar parametreleri kabul edebilir. Makrolar DDL ifadeleri içerebilir, ancak bu Makrodaki son ifade olmalıdır.

Makrolar Oluşturun

Makrolar, CREATE MACRO deyimi kullanılarak oluşturulur.

Sözdizimi

Aşağıda CREATE MACRO komutunun genel sözdizimi verilmiştir.

CREATE MACRO <macroname> [(parameter1, parameter2,...)] ( 
   <sql statements> 
);

Misal

Aşağıdaki Çalışan tablosunu düşünün.

Çalışan Hayır İsim Soyadı Doğum günü
101 Mike James 1/5/1980
104 Alex Stuart 11/6/1984
102 Robert Williams 3/5/1983
105 Robert James 12/1/1984
103 Peter Paul 4/1/1983

Aşağıdaki örnek, Get_Emp adlı bir Makro oluşturur. Çalışan tablosundan kayıtları almak için bir seçme ifadesi içerir.

CREATE MACRO Get_Emp AS ( 
   SELECT 
   EmployeeNo, 
   FirstName, 
   LastName 
   FROM  
   employee 
   ORDER BY EmployeeNo; 
);

Makroları Yürütme

Makrolar, EXEC komutu kullanılarak yürütülür.

Sözdizimi

Aşağıdaki EXECUTE MACRO komutunun sözdizimidir.

EXEC <macroname>;

Misal

Aşağıdaki örnek, Get_Emp Makro adlarını çalıştırır; Aşağıdaki komut yürütüldüğünde, tüm kayıtları çalışan tablosundan alır.

EXEC Get_Emp; 
*** Query completed. 5 rows found. 3 columns returned. 
*** Total elapsed time was 1 second.  
EmployeeNo             FirstName                      LastName 
-----------  ------------------------------  --------------------------- 
   101                  Mike                          James 
   102                  Robert                        Williams 
   103                  Peter                         Paul 
   104                  Alex                          Stuart 
   105                  Robert                        James

Parametreli Makrolar

Teradata Makroları parametreleri kabul edebilir. Bir Makro içinde bu parametrelere; (noktalı virgül).

Aşağıda, parametreleri kabul eden bir Makro örneği verilmiştir.

CREATE MACRO Get_Emp_Salary(EmployeeNo INTEGER) AS ( 
   SELECT 
   EmployeeNo, 
   NetPay 
   FROM  
   Salary 
   WHERE EmployeeNo = :EmployeeNo; 
);

Parametreli Makroları Yürütme

Makrolar, EXEC komutu kullanılarak yürütülür. Makroları yürütmek için EXEC ayrıcalığına ihtiyacınız var.

Sözdizimi

EXECUTE MACRO ifadesinin sözdizimi aşağıdadır.

EXEC <macroname>(value);

Misal

Aşağıdaki örnek, Get_Emp Makro adlarını çalıştırır; Çalışan numarasını parametre olarak kabul eder ve o çalışan için çalışan tablosundan kayıtları çıkarır.

EXEC Get_Emp_Salary(101); 
*** Query completed. One row found. 2 columns returned. 
*** Total elapsed time was 1 second.
 
EmployeeNo      NetPay 
-----------  ------------ 
   101           36000