16.20 - 关于复制 SQL 存储过程 - Teradata Data Mover

Teradata® Data Mover 用户指南

Product
Teradata Data Mover
Release Number
16.20
Published
2021 年 11 月
Content Type
用户指南
Publication ID
B035-4101-107K-CHS
Language
中文 (简体)
SQL 存储过程是一组 SQL 语句,这些语句具有一个已分配的名称,该名称以编译后的形式存储在数据库中,以便可以由大量程序共享。可以使用以下 SQL 语句创建一个示例 SQL 存储过程:
CREATE PROCEDURE SP_deleteTestTable ()
BEGIN 
DELETE FROM test;
END;
创建存储过程后,可以通过执行 show procedure 查询检索其定义︰
SHOW PROCEDURE SP_deleteTestTable;

使用 Data Mover 复制 SQL 存储过程

Data Mover 按如下所示复制 SQL 存储过程:
  • Data Mover 会通过执行 show procedure dbname.spname SQL 语句检索 SQL 存储过程创建 DDL。
  • Data Mover 不会解析创建过程 DDL;它将在目标系统上执行完全相同的 DDL。它不会重新定位或重命名存储过程对象。
  • 如果过程定义中的过程名称未完全限定,则该过程将在与源过程数据库名称相同的数据库中创建。
  • 如果过程定义中的表名称未完全限定,则这些表必须位于与源过程数据库名称相同的数据库中,以避免出现错误。
  • 如果要复制的对象在目标数据库中不存在,则会在目标数据库中创建该对象。如果对象在目标数据库中存在,则除非 overwrite_existing_objects 属性被设置为 false,否则将覆盖该对象。这种情况下,将生成创建时错误。
  • 如果要在完整数据库复制中复制某个过程,则将通过 ARC 随数据库一起复制该过程,而不会单独复制该过程。
复制 SQL 存储过程时,该过程的基础表必须已经位于目标系统上,或者必须通过作业复制。根据存储过程创建 SQL,如果创建的存储过程没有基础表,则可能会出现 JDBC 错误。