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