SQLプロシージャでのPREPARE文の使用に関するルール - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage
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>を参照してください。