Teradata - Quy trình lưu trữ

Một thủ tục được lưu trữ chứa một tập hợp các câu lệnh SQL và các câu lệnh thủ tục. Chúng có thể chỉ chứa các câu lệnh thủ tục. Định nghĩa của thủ tục được lưu trữ được lưu trữ trong cơ sở dữ liệu và các tham số được lưu trữ trong các bảng từ điển dữ liệu.

Ưu điểm

  • Các thủ tục được lưu trữ giúp giảm tải mạng giữa máy khách và máy chủ.

  • Cung cấp bảo mật tốt hơn vì dữ liệu được truy cập thông qua các thủ tục được lưu trữ thay vì truy cập trực tiếp.

  • Cung cấp khả năng bảo trì tốt hơn vì logic nghiệp vụ được kiểm tra và lưu trữ trong máy chủ.

Tạo thủ tục

Các thủ tục được lưu trữ được tạo bằng cách sử dụng câu lệnh CREATE PROCEDURE.

Cú pháp

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

CREATE PROCEDURE <procedurename> ( [parameter 1 data type, parameter 2 data type..] ) 
BEGIN 
   <SQL or SPL statements>; 
END;

Thí dụ

Hãy xem xét Bảng lương sau đây.

Nhân viên Không Tổng Khấu trừ NetPay
101 40.000 4.000 36.000
102 80.000 6.000 74.000
103 90.000 7.000 83.000
104 75.000 5.000 70.000

Ví dụ sau đây tạo một thủ tục được lưu trữ có tên InsertSalary để chấp nhận các giá trị và chèn vào Bảng lương.

CREATE PROCEDURE InsertSalary ( 
   IN in_EmployeeNo INTEGER, IN in_Gross INTEGER, 
   IN in_Deduction INTEGER, IN in_NetPay INTEGER 
) 
BEGIN 
   INSERT INTO Salary ( 
      EmployeeNo, 
      Gross, 
      Deduction, 
      NetPay 
   ) 
   VALUES ( 
      :in_EmployeeNo, 
      :in_Gross, 
      :in_Deduction, 
      :in_NetPay 
   ); 
END;

Các thủ tục thực thi

Các thủ tục đã lưu trữ được thực thi bằng câu lệnh CALL.

Cú pháp

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

CALL <procedure name> [(parameter values)];

Thí dụ

Ví dụ sau gọi thủ tục được lưu trữ InsertSalary và chèn các bản ghi vào Bảng lương.

CALL InsertSalary(105,20000,2000,18000);

Khi truy vấn trên được thực thi, nó sẽ tạo ra kết quả sau và bạn có thể thấy hàng được chèn trong bảng Lương.

Nhân viên Không Tổng Khấu trừ NetPay
101 40.000 4.000 36.000
102 80.000 6.000 74.000
103 90.000 7.000 83.000
104 75.000 5.000 70.000
105 20.000 2.000 18.000