マクロは、単一のリクエストで実行できる1つ以上のSQL文で構成されます。マクロが実行されるごとに、1つ以上のデータ行が返されます。例えば、次の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は次の方法でマクロをコピーします。
- show macro dbname.macroname SQL文を実行してマクロ作成DDLを取得します。
- Data Moverは、作成マクロDDLの構文解析は行いません。まったく同じDDLがターゲット システムで実行されます。Data Moverは、マクロ オブジェクトの再配置や名前変更を行いません。
- マクロの基礎となるテーブルがターゲット システムに既に存在しているか、ジョブによってコピーされる必要があります。
- マクロ定義内のマクロ名が完全修飾名でない場合、マクロはソース マクロ データベースと同じ名前のデータベース内に作成されます。
- マクロ定義内のテーブル名が完全修飾名でない場合、テーブルは、エラーが発生しないようにソース マクロ データベースと同じ名前のデータベース内に存在している必要があります。
- コピーするオブジェクトがターゲット データベースに存在しない場合は、ターゲット データベース上に作成されます。オブジェクトがターゲット データベースに存在する場合は、overwrite_existing_objectsプロパティがfalseに設定されていないとオブジェクトは上書きされます。 その場合、作成タイムエラーが生成されます。
- データベース全体のコピー中にマクロがコピーされる場合は、DSAを使用してデータベースと一緒にコピーされます。個別にはコピーされません。