パラメータは、マクロの実行中に使用されるように、ユーザーがEXECリクエストに入力する値です。CREATE MACROおよびREPLACE MACROリクエストで使用するパラメータには、次のルールが適用されます。
- データベース オブジェクトの名前をパラメータとしてマクロに渡すことはできません。
これは、テーブル、ビュー、およびそれらの列、データベース、ユーザー、さらに同様のデータベース オブジェクトを参照します。
動的SQLをストアド プロシージャ内で使用することができます。動的SQLをストアド プロシージャ内で使用する方法については、<Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL、B035-1148>を参照してください。
- マクロでのパラメータの使用はオプションです。必要な場合には、CREATE MACROリクエストまたはREPLACE MACROリクエストの一部として指定しなければなりません。
- マクロのパラメータの定義では、CREATE/REPLACE MACROリクエストのマクロ名の後に、適切なパラメータの名前と属性を続けます。データ型の定義は、各パラメータで必須です。他に、形式指定またはデフォルト値を含めることができます。必要に応じて、FORMAT句を通じて新しい形式を定義し、デフォルト制御句を通じてデフォルトを定義します。
- 順序位置指定整数または式のどちらかが有効な場所(GROUP BY句内の序数グループ化セットやORDER BY句での順序指定など)でパラメータを指定した場合、Teradata Databaseは、マクロ内に含まれるリクエストによって参照されるパラメータを、定数リテラルとしてではなく式として扱います。
結果としてTeradata Databaseは、そのようなパラメータ式を適用するとしても、定数リテラルとしては適用ない。代わりに、マクロ本体の中でグループ化と順序付けを明示的に指定する必要があります。<Teradata Vantage™ - SQLデータ操作言語、B035-1146>の「GROUP BY句」および「ORDER BY句」を参照してください。
- 指定された形式、データ型、またはデフォルト値に準拠しないパラメータ値をEXECリクエストに供給した場合、そのリクエストはアボートし、リクエスト側にエラーを返します。
- パラメータは1つのマクロにつき最大で2,048個指定できます。
- マクロ パラメータでクエリー バンドを指定しても、それはトランザクション用クエリー バンドになるだけです。
セッション用クエリー バンドを指定するために、パラメータを使用したCREATE MACROまたはRENAME MACROリクエストを実行すると、そのリクエストはアボートされ、システムはリクエスト側にメッセージを返します。