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

Teradata® Data Mover ユーザー ガイド

Product
Teradata Data Mover
Release Number
17.00
Published
2021年11月
Content Type
ユーザー ガイド
Publication ID
B035-4101-030K-JPN
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に設定されていないとオブジェクトは上書きされます。 その場合、作成タイムエラーが生成されます。
  • データベース全体のコピーにプロシージャが含まれている場合、プロシージャはデータベースとともにDSAを使用してコピーされます。個別にはコピーされません。
SQLストアド プロシージャをコピーするときは、そのプロシージャの基礎となるテーブルがターゲット システムにすでに存在している必要があります。または基礎となるテーブルをジョブによってコピーする必要があります。ストアド プロシージャ作成SQLによっては、基礎となるテーブルのないストアド プロシージャを作成するとエラーが発生することがあります。