Teradata - Makros

Makro ist eine Reihe von SQL-Anweisungen, die durch Aufrufen des Makronamens gespeichert und ausgeführt werden. Die Definition von Makros wird im Datenwörterbuch gespeichert. Benutzer benötigen nur die EXEC-Berechtigung, um das Makro auszuführen. Benutzer benötigen keine separaten Berechtigungen für die im Makro verwendeten Datenbankobjekte. Makroanweisungen werden als einzelne Transaktion ausgeführt. Wenn eine der SQL-Anweisungen in Macro fehlschlägt, werden alle Anweisungen zurückgesetzt. Makros können Parameter akzeptieren. Makros können DDL-Anweisungen enthalten, dies sollte jedoch die letzte Anweisung in Macro sein.

Makros erstellen

Makros werden mit der Anweisung CREATE MACRO erstellt.

Syntax

Es folgt die generische Syntax des Befehls CREATE MACRO.

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

Beispiel

Betrachten Sie die folgende Mitarbeitertabelle.

EmployeeNo Vorname Familienname, Nachname Geburtsdatum
101 Mike James 05.01.1980
104 Alex Stuart 06.11.1984
102 Robert Williams 05.03.1983
105 Robert James 01.12.1984
103 Peter Paul 01.04.1983

Im folgenden Beispiel wird ein Makro mit dem Namen Get_Emp erstellt. Es enthält eine select-Anweisung zum Abrufen von Datensätzen aus der Mitarbeitertabelle.

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

Makros ausführen

Makros werden mit dem Befehl EXEC ausgeführt.

Syntax

Es folgt die Syntax des Befehls EXECUTE MACRO.

EXEC <macroname>;

Beispiel

Im folgenden Beispiel werden die Makronamen Get_Emp ausgeführt. Wenn der folgende Befehl ausgeführt wird, werden alle Datensätze aus der Mitarbeitertabelle abgerufen.

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

Parametrisierte Makros

Teradata-Makros können Parameter akzeptieren. Innerhalb eines Makros wird auf diese Parameter verwiesen. (Semikolon).

Das folgende Beispiel zeigt ein Makro, das Parameter akzeptiert.

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

Parametrierte Makros ausführen

Makros werden mit dem Befehl EXEC ausgeführt. Sie benötigen die EXEC-Berechtigung, um die Makros auszuführen.

Syntax

Es folgt die Syntax der EXECUTE MACRO-Anweisung.

EXEC <macroname>(value);

Beispiel

Im folgenden Beispiel werden die Makronamen Get_Emp ausgeführt. Es akzeptiert Mitarbeiter-Nr. Als Parameter und extrahiert Datensätze aus der Mitarbeitertabelle für diesen Mitarbeiter.

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