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