EXECUTE (動的SQL形式) - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/vqj1592443206677.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1148
Product Category
Software
Teradata Vantage

準備された動的SQL文を実行します。

ANSI準拠

動的SQL形式のEXECUTEは、ANSI/ISO SQL:2011に準拠しています。

必要な権限

必要な権限は、SQL文およびアクセス対象のテーブルによって決まります。

呼び出し

実行可能形式。

動的SQL文。

埋め込みSQLのみ。

構文

EXECUTE statement_name
  [ USING using_spec [,...] |
    USING DESCRIPTOR [:] descriptor_area
  ]

構文要素

using_spec
[:] host_variable_name [ [INDICATOR] :host_indicator_name ]
statement_name
前準備された文に関連付けた名前。
host_variable_name
準備された文の入力データとして使用される変数。
名前の前にコロンを付けるかどうかは任意指定です。
host_indicator_name
標識変数。
名前の前のコロンは必須です。
descriptor_area
SQL記述領域(SQLDA)
SQLDA構造がポインタとして宣言されている場合、descriptor_areaを名前またはポインタ参照(*sqldaname)としてCプログラムにコーディングできます。

使用上の注意

  • 一般ルール

    アプリケーションにSQLDAが定義されていなければなりません。

    statement_nameで指定される文は、同じトランザクション内ですでに準備が完了していなければなりません。

    EXECUTEは、ストアド プロシージャと同時に使用することはできません。
    • データを返す文
    • マクロ
    • 複文リクエスト

    これらの場合は、動的カーソルを宣言し、アプリケーション プログラムで適切なFETCH文を使用してその結果にアクセスする必要があります。

    EXECUTEそのものを動的SQL文として実行することはできません。

  • USING句のルール
    • USING句は、statement_nameによって指定されるSQL文への入力として使用される変数を識別します。
    • EXECUTE文に先立って宣言され、入力変数として使用される指定されたホスト変数名は、有効なクライアント言語の変数でなければなりません。クライアント構造を入力変数の識別に使用することができます。

      指定する変数の数は、識別される文におけるパラメータ マーカー(疑問符、?)の数と同じでなければなりません。n番目の変数と、n番目のパラメータ マーカーが対応している必要があります。

    • 記述子の名前は、アプリケーションによってすでに定義されている入力SQLDA構造を識別します。このSQLDAには、入力変数セットに関する全ての必要な情報が含まれています。

      SQLDAのSQLDフィールドで指定される変数の数は、識別される文のパラメータ マーカー(疑問符、?)と同じでなければなりません。SQLDAによって記述されるn番目の変数はn番目のパラメータ マーカーに対応していなければなりません。

関連情報