Teradata - Macro

Macro là một tập hợp các câu lệnh SQL được lưu trữ và thực thi bằng cách gọi tên Macro. Định nghĩa về Macro được lưu trữ trong Từ điển dữ liệu. Người dùng chỉ cần đặc quyền EXEC để thực thi Macro. Người dùng không cần các đặc quyền riêng biệt trên các đối tượng cơ sở dữ liệu được sử dụng bên trong Macro. Các câu lệnh macro được thực hiện như một giao dịch duy nhất. Nếu một trong các câu lệnh SQL trong Macro bị lỗi, thì tất cả các câu lệnh sẽ được khôi phục lại. Macro có thể chấp nhận các tham số. Macro có thể chứa các câu lệnh DDL, nhưng đó phải là câu lệnh cuối cùng trong Macro.

Tạo Macro

Macro được tạo bằng cách sử dụng câu lệnh CREATE MACRO.

Cú pháp

Sau đây là cú pháp chung của lệnh CREATE MACRO.

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

Thí dụ

Hãy xem xét bảng Nhân viên sau đây.

Nhân viên Không Tên đầu tiên LastName Ngày sinh
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

Ví dụ sau đây tạo một Macro có tên là Get_Emp. Nó chứa một câu lệnh select để lấy các bản ghi từ bảng nhân viên.

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

Thực thi Macro

Macro được thực thi bằng lệnh EXEC.

Cú pháp

Sau đây là cú pháp của lệnh EXECUTE MACRO.

EXEC <macroname>;

Thí dụ

Ví dụ sau đây thực thi các tên Macro Get_Emp; Khi lệnh sau được thực thi, nó lấy tất cả các bản ghi từ bảng nhân viên.

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

Macro được tham số hóa

Teradata Macro có thể chấp nhận các tham số. Trong Macro, các tham số này được tham chiếu với; (dấu chấm phẩy).

Sau đây là một ví dụ về Macro chấp nhận các tham số.

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

Thực thi Macro tham số hóa

Macro được thực thi bằng lệnh EXEC. Bạn cần đặc quyền EXEC để thực thi Macro.

Cú pháp

Sau đây là cú pháp của câu lệnh EXECUTE MACRO.

EXEC <macroname>(value);

Thí dụ

Ví dụ sau đây thực thi các tên Macro Get_Emp; Nó chấp nhận nhân viên không làm tham số và trích xuất các bản ghi từ bảng nhân viên cho nhân viên đó.

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