SQLストアド プロシージャのコピーについて - Teradata Data Mover

Teradata® Data Mover ユーザー ガイド

Product
Teradata Data Mover
Release Number
17.10
Published
2021年6月
Language
日本語
Last Update
2021-07-16
dita:mapPath
ja-JP/fcu1619423186706.ditamap
dita:ditavalPath
ja-JP/fcu1619423186706.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によっては、基礎となるテーブルのないストアド プロシージャを作成するとエラーが発生することがあります。