マクロを実行します。
埋め込みSQLアプリケーションからマクロを実行するために使用する埋め込みSQL EXEC文については、<Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL、B035-1148>を参照してください。
ANSI準拠
EXECUTEは、ANSI SQL:2011規格に対するTeradata拡張機能です。
必要な権限
マクロに対するEXECUTE権限が必要です。マクロの作成者または所有者は、他のユーザーにEXECUTE権限を与えることができます。さらに、マクロの直接所有者(そのマクロがあるデータベース)は、マクロ内にあるリクエストの集合で指定されたオブジェクトに対し、必要な権限を持っていなければなりません。
詳細については、<Teradata Vantage™ - SQLデータ定義言語 - 詳細トピック、B035-1184>と<Teradata Vantage™ - データベースの管理、B035-1093>を参照してください。
推奨事項
マクロ内のデータ定義リクエストは、そのマクロが実行されるまで解釈されません。データベースのオブジェクトへの修飾されない参照は、その実行時に、マクロを実行するユーザーのデフォルトのデータベースを使用して解釈されます。
このため、データ定義文の中のオブジェクト参照は、マクロ本体の中で常に完全修飾(databasename.tablename)されている必要があります。
マクロを実行する際のルール
以下のルールがマクロの実行に適用されます。
- カンマの数は、parameter_nameの構文規則を使用しない場合はマクロ定義と一致していなければなりません。
- 指定されたパラメータ名がないEXECUTE定数式リスト形式の値は、定数または定数が含まれる式にすることができます。この文脈では、DATE、TIME、およびUSERは、定数とみなされます。
- マクロの実行時にエラー メッセージが返された場合、それはマクロ内のSQLリクエストが原因である可能性があります。
- 呼び出し手順で使用されるパラメータの数は、定義済みのパラメータの数と同じでなければなりません。
- 例えば、2つのパラメータが定義および使用されている場合に、その両方がnullであれば、次のリクエストはすべて有効です。ただし、マクロ定義でデフォルトが指定されている場合を除きます。
EXECUTE macro_1 '(, 1); EXECUTE macro_1 (,); EXECUTE macro_1 (NULL, NULL);
ログおよびエラーへのアクセス
SQL構文解析プログラムが構文エラーまたは意味エラーを検出して報告すると、エラーが返され、リクエストのロギングは行なわれません。