- Teradata 教程
- Teradata - 主页
- Teradata 基础知识
- Teradata - 简介
- Teradata - 安装
- Teradata - 架构
- Teradata - 关系概念
- Teradata - 数据类型
- Teradata - 表
- Teradata - 数据操作
- Teradata - SELECT 语句
- 逻辑和条件运算符
- Teradata - SET 运算符
- Teradata - 字符串操作
- Teradata - 日期/时间函数
- Teradata - 内置函数
- Teradata - 聚合函数
- Teradata - 案例与合并
- Teradata - 主索引
- Teradata - 加入
- Teradata - 子查询
- Teradata 高级版
- Teradata - 表类型
- Teradata - 空间概念
- Teradata - 二级索引
- Teradata - 统计
- Teradata - 压缩
- Teradata - 解释
- Teradata - 哈希算法
- Teradata - 连接索引
- Teradata - 视图
- Teradata - 宏
- Teradata - 存储过程
- Teradata - 加入策略
- Teradata - 分区主索引
- Teradata - OLAP 函数
- Teradata - 数据保护
- Teradata - 用户管理
- Teradata - 性能调优
- Teradata - 快速加载
- Teradata - 多负载
- Teradata - 快速导出
- Teradata-BTEQ
- Teradata 有用资源
- Teradata - 问题与解答
- Teradata - 快速指南
- Teradata - 有用的资源
- Teradata - 讨论
Teradata - 宏
宏是一组SQL语句,通过调用宏名来存储和执行。宏的定义存储在数据字典中。用户只需要 EXEC 权限即可执行宏。用户不需要对宏内使用的数据库对象具有单独的权限。宏语句作为单个事务执行。如果 Macro 中的 SQL 语句之一失败,则回滚所有语句。宏可以接受参数。宏可以包含 DDL 语句,但这应该是宏中的最后一个语句。
创建宏
宏是使用 CREATE MACRO 语句创建的。
句法
以下是 CREATE MACRO 命令的通用语法。
CREATE MACRO <macroname> [(parameter1, parameter2,...)] ( <sql statements> );
例子
考虑以下 Employee 表。
员工号 | 名 | 姓 | 出生日期 |
---|---|---|---|
101 | 麦克风 | 詹姆士 | 1980年1月5日 |
104 | 亚历克斯 | 斯图尔特 | 1984年11月6日 |
102 | 罗伯特 | 威廉斯 | 1983年3月5日 |
105 | 罗伯特 | 詹姆士 | 1984年12月1日 |
103 | 彼得 | 保罗 | 1983年4月1日 |
以下示例创建一个名为 Get_Emp 的宏。它包含一个用于从员工表中检索记录的选择语句。
CREATE MACRO Get_Emp AS ( SELECT EmployeeNo, FirstName, LastName FROM employee ORDER BY EmployeeNo; );
执行宏
宏是使用 EXEC 命令执行的。
句法
以下是 EXECUTE MACRO 命令的语法。
EXEC <macroname>;
例子
以下示例执行宏名称 Get_Emp;执行以下命令时,它将检索员工表中的所有记录。
EXEC Get_Emp; *** Query completed. 5 rows found. 3 columns returned. *** Total elapsed time was 1 second. EmployeeNo FirstName LastName ----------- ------------------------------ --------------------------- 101 Mike James 102 Robert Williams 103 Peter Paul 104 Alex Stuart 105 Robert James
参数化宏
Teradata 宏可以接受参数。在宏中,这些参数通过 ; 引用。(分号)。
以下是接受参数的宏示例。
CREATE MACRO Get_Emp_Salary(EmployeeNo INTEGER) AS ( SELECT EmployeeNo, NetPay FROM Salary WHERE EmployeeNo = :EmployeeNo; );
执行参数化宏
宏是使用 EXEC 命令执行的。您需要 EXEC 权限才能执行宏。
句法
以下是 EXECUTE MACRO 语句的语法。
EXEC <macroname>(value);
例子
以下示例执行宏名称 Get_Emp;它接受员工编号作为参数,并从员工表中提取该员工的记录。
EXEC Get_Emp_Salary(101); *** Query completed. One row found. 2 columns returned. *** Total elapsed time was 1 second. EmployeeNo NetPay ----------- ------------ 101 36000