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

Teradata® Data Mover 用户指南

Product
Teradata Data Mover
Release Number
17.20
Published
2022 年 9 月
Language
中文 (简体)
Last Update
2022-10-12
dita:mapPath
zh-CN/tsn1650877444606.ditamap
dita:ditavalPath
zh-CN/mpm1591127278842.ditaval
dita:id
B035-4101
Product Category
Analytical Ecosystem
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,否则将覆盖该对象。这种情况下,将生成创建时错误。
  • 如果要在完整数据库复制中复制某个过程,则会通过 DSA 随数据库一起复制该过程,而不会单独复制该过程。
复制 SQL 存储过程时,该过程的基础表必须已经位于目标系统上,或者必须通过作业复制。根据存储过程创建 SQL,如果创建的存储过程没有基础表,则可能会出现 JDBC 错误。

如果要复制 SQL 存储过程而不复制基础表,可以使用 DSA。请参阅关于使用 DSA 复制视图、宏和存储过程