Teradata - makra

Makro to zestaw instrukcji SQL, które są przechowywane i wykonywane przez wywołanie nazwy makra. Definicja makr jest przechowywana w słowniku danych. Użytkownicy potrzebują tylko uprawnienia EXEC, aby wykonać makro. Użytkownicy nie potrzebują oddzielnych uprawnień do obiektów bazy danych używanych wewnątrz makra. Deklaracje makr są wykonywane jako pojedyncza transakcja. Jeśli jedna z instrukcji SQL w makrze nie powiedzie się, wszystkie instrukcje są wycofywane. Makra mogą akceptować parametry. Makra mogą zawierać instrukcje DDL, ale powinna to być ostatnia instrukcja w makrze.

Utwórz makra

Makra są tworzone za pomocą instrukcji CREATE MACRO.

Składnia

Poniżej znajduje się ogólna składnia polecenia CREATE MACRO.

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

Przykład

Rozważ poniższą tabelę Pracownik.

Pracownik numer Imię Nazwisko Data urodzenia
101 Mikrofon James 05.01.1980
104 Alex Stuart 06.11.1984
102 Robert Williams 05.03.1983
105 Robert James 12/1/1984
103 Piotr Paweł 01.04.1983

Poniższy przykład tworzy makro o nazwie Get_Emp. Zawiera instrukcję wyboru służącą do pobierania rekordów z tabeli pracowników.

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

Wykonywanie makr

Makra są wykonywane za pomocą polecenia EXEC.

Składnia

Poniżej znajduje się składnia polecenia EXECUTE MACRO.

EXEC <macroname>;

Przykład

Poniższy przykład wykonuje nazwy makr Get_Emp; Wykonanie następującego polecenia powoduje pobranie wszystkich rekordów z tabeli pracowników.

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

Sparametryzowane makra

Makra Teradata mogą akceptować parametry. Wewnątrz makra do tych parametrów odwołuje się; (średnik).

Poniżej znajduje się przykład makra, które akceptuje parametry.

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

Wykonywanie sparametryzowanych makr

Makra są wykonywane za pomocą polecenia EXEC. Do wykonywania makr potrzebne są uprawnienia EXEC.

Składnia

Poniżej znajduje się składnia instrukcji EXECUTE MACRO.

EXEC <macroname>(value);

Przykład

Poniższy przykład wykonuje nazwy makr Get_Emp; Przyjmuje pracownika nr jako parametr i wyodrębnia rekordy z tabeli pracowników dla tego pracownika.

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