Teradata 存储过程

2025年3月17日 | 阅读 3 分钟

存储过程包含一组 SQL 语句和过程语句。它们由一组控制和条件处理注释组成,使 SQL 成为一种计算上完整的编程语言。存储过程的定义存储在数据库中,参数存储在数据字典表中。

这些功能为应用程序员提供了基于服务器的 Teradata 数据库过程接口。

存储过程对于某些战术查询应用程序来说非常有益。本节提供

  • 一些使用存储过程处理复杂更新的示例。
  • 存储过程和宏对于不同战术查询应用程序的相对效率的比较。

优点

Teradata 存储过程提供以下基本优势,例如:

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

存储过程的元素

构成存储过程主要任务的语句集称为存储过程体,它由单个语句或复合语句或块组成。

单个语句存储过程体可以包含一个控制语句(例如 LOOP 或 WHILE),或一个 SQL DDL、DML 或 DCL 语句,包括动态 SQL。不允许以下语句,例如:

  • 任何声明语句,例如局部变量、游标、条件或条件处理程序。
  • 游标语句(OPEN、FETCH 或 CLOSE)。

复合语句存储过程体由一个 BEGIN-END 语句组成,该语句包含一组声明和语句,包括:

  • 局部变量声明。
  • 游标声明。
  • 条件声明。
  • 条件处理程序声明语句。
  • 控制语句。
  • 存储过程支持的 SQL DML、DDL 和 DCL 语句,包括动态 SQL。
  • 由关键字 BEGIN REQUEST 和 END REQUEST 分隔的多语句请求(包括动态多语句请求)。

创建存储过程

Teradata 存储过程由以下命令创建:

  • 使用 COMPILE 命令的 BTEQ 实用程序。
  • CLIv2 应用程序、ODBC、JDBC 和 Teradata SQL Assistant(以前称为 Queryman)使用 SQL CREATE PROCEDURE 或 REPLACE PROCEDURE 语句。
  • 使用 CREATE PROCEDURE 语句创建存储过程。

过程以对象形式存储在用户数据库空间中,并在服务器上执行。

语法

以下是 CREATE PROCEDURE 语句的语法。

示例

考虑以下员工工资表。

EmployeeId总收入Deduction (扣除额)NetPay (实付工资)
20200140,0002,00038,000
20200280,0003,00077,000
20200385,0005,00080,000
20200490,0002,00088,000

以下示例创建了一个名为 InsertSalary 的存储过程,用于接受值并将其插入到工资表中。

执行存储过程

如果拥有足够的权限,我们可以使用 SQL CALL 语句从任何支持的客户端实用程序或接口执行存储过程。

我们还可以从用 CC++Java 编写的外部存储过程中执行存储过程。我们必须为存储过程中包含的所有参数指定参数。

语法

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

示例

以下示例调用存储过程 InsertSalary,并将记录插入到员工工资表中。

EmployeeId总收入Deduction (扣除额)NetPay (实付工资)
20200140,0002,00038,000
20200280,0003,00077,000
20200385,0005,00080,000
20200490,0002,00088,000
20200520,0001,00019,000






Youtube 关注我们的Youtube频道获取视频:立即加入

反馈


帮助他人,请分享

facebooktwitterpinterest

学习最新教程


准备


热门技术


B.Tech / MCA