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
广告