Teradata教程

Teradata 存储过程

一个存储过程包含一组 SQL 语句和过程语句。它们可能只包含程序性声明。存储过程的定义存储在数据库中,参数存储在数据字典表中。

优势

存储过程减少了客户端和服务器之间的网络负载。 提供更好的安全性,因为数据是通过存储过程访问的,而不是直接访问。 提供更好的维护,因为业务逻辑经过测试并存储在服务器中。

创建过程

存储过程是使用 CREATE PROCEDURE 语句创建的。

语法

以下是 CREATE PROCEDURE 语句的通用语法。
CREATE PROCEDURE <procedurename> ( [parameter 1 data type, parameter 2 data type..] ) 
BEGIN 
   <SQL or SPL statements>; 
END;

示例

考虑以下薪资表。
EmployeeNo 毛额 演绎 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
下面的示例创建一个名为 InsertSalary 的存储过程来接受值并插入到工资表中。
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 并将记录插入到工资表中。
CALL InsertSalary(105,20000,2000,18000);
执行上述查询后,会产生以下输出,您可以在 Salary 表中看到插入的行。
EmployeeNo 毛额 演绎 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
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4