Teradata - 儲存過程



儲存過程包含一組SQL語句和過程語句。它們可能只包含過程語句。儲存過程的定義儲存在資料庫中,引數儲存在資料字典表中。

優點

  • 儲存過程減少了客戶端和伺服器之間的網路負載。

  • 提供更好的安全性,因為資料是透過儲存過程訪問的,而不是直接訪問。

  • 提供更好的維護性,因為業務邏輯在伺服器端經過測試並存儲。

建立過程

使用CREATE PROCEDURE語句建立儲存過程。

語法

以下是CREATE PROCEDURE語句的通用語法。

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

示例

考慮以下薪資表。

員工編號 總額 扣除 淨收入
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

以下示例建立一個名為InsertSalary的儲存過程,用於接受值並插入到Salary表中。

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;

執行過程

使用CALL語句執行儲存過程。

語法

以下是CALL語句的通用語法。

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

示例

以下示例呼叫儲存過程InsertSalary並將記錄插入到Salary表中。

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

執行上述查詢後,它會產生以下輸出,您可以在Salary表中看到插入的行。

員工編號 總額 扣除 淨收入
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
廣告
© . All rights reserved.