17.00 - 17.05 - マクロでのパラメータの使用上のルール - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-170K-JPN
Language
日本語 (日本)
パラメータは、マクロの実行中に使用されるように、ユーザーが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リクエストを実行すると、そのリクエストはアボートされ、システムはリクエスト側にメッセージを返します。