SQLプロシージャ定義でのPREPARE文の使用には、次のルールが適用されます。
- PREPARE文は、動的カーソルSQL文の実行の準備をします。
- PREPARE文は、結果セットを返すプロシージャに対してのみ使用できます。
- PREPARE文で指定されたSQL文の名前は、標準SQL識別子になっている必要があります。
- システムはPREPARE文を構文チェックの構文解析プログラムに渡します。
構文エラーがあった場合、文は構文例外エラーをリクエスト元に返します。
- PREPARE文が動的DECLARE CURSOR文で文名を参照している場合、文は動的カーソルSELECT文である必要があります。
動的カーソルSELECT文になっていない場合、SQLSTATE '07005'エラーが返されます。これは、指定した文がカーソル指定になっていないことを意味します。
- 文字列式として、または変数として指定されているかどうかで、動的SQL文のテキストは最長64KBまで指定可能です。
この最大長には、SQLテキスト、USINGデータ、およびCLIv2パーセル オーバーヘッドを含みます。
- OPEN … USING文は、結果セットを返すカーソルに対してのみ指定できます。
- PREPARE文の一部として複文リクエストを指定することはできません。
- 動的SQL文には、パラメータ マーカーまたはリテラル、特にSQL変数、参照が有効であるプレースホルダー トークン(疑問符)の任意のを含めることができます。
唯一の例外は、パラメータ マーカーもプレースホルダー トークンも、選択リストでは指定できない点です。
- システムは、OPEN文のUSING句を使用して、文に値を供給します。
- スタンドアロン動的SQL文としてPREPARE文を実行することはできません。
- プロシージャ定義では、最大15の動的SQL文が許可されます。
詳細については、<Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL、B035-1148>を参照してください。