宏由可通过单个请求运行的一个或多个 SQL 语句组成。每次执行宏时,会返回一行或多行数据。例如,可以使用以下 SQL 语句创建一个宏:
CREATE MACRO Empinfo AS ( SELECT EmplId (TITLE 'Id') ,LastName (TITLE 'Name') ,City (TITLE 'City') FROM employee ORDER BY 2; );
创建宏之后,可以对宏执行 show macro 查询来检索宏定义。
SHOW MACRO Empinfo;
使用 Data Mover 复制宏
Data Mover 按以下方式复制宏:
- Data Mover 通过执行 show macro dbname.macroname SQL 语句来检索宏创建 DDL。
- Data Mover 不解析宏创建 DDL;而是在目标系统上运行完全相同的 DDL。Data Mover 不会重定位或重命名宏对象。
- 宏的基础表必须已存在于目标系统中,或随作业一同复制。
- 如果宏定义中的宏名称不是完全限定名称,将在与源宏数据库同名的数据库中创建宏。
- 如果宏定义中的表名称不是完全限定名称,这些表必须位于与源宏数据库同名的数据库中,以避免出错。
- 如果要复制的对象在目标数据库中不存在,则会在目标数据库中创建该对象。如果对象在目标数据库中存在,则除非 overwrite_existing_objects 属性被设置为 false,否则将覆盖该对象。这种情况下,将生成创建时错误。
- 如果要在完整数据库复制中复制某个宏,则会通过 DSA 随数据库一起复制该宏,不会单独复制该宏。