OPEN (埋め込みSQL形式) - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/xqq1557098602407.ditamap
dita:ditavalPath
ja-JP/xqq1557098602407.ditaval
dita:id
B035-1148
Product Category
Software
Teradata Vantage

目的

埋め込みSQLアプリケーションに対して宣言されたカーソルを開き、その宣言で指定されているSQL文を実行します。

呼び出し

実行可能形式。

埋め込みSQLのみ。

構文

OPEN cursor_name [
  USING {
    using_spec [,...] |
    DESCRIPTOR [:] descriptor_area
  }
]
using_spec
[:] host_variable_name [ [INDICATOR] :host_indicator_name ]
cursor_name
開くカーソルの名前を指定します。
host_variable_name
カーソル リクエストの入力データとして使用する変数。
名前の前にコロン文字を付けるかどうかはオプションです。
host_indicator_name
標識変数。
名前の前のコロン文字は必須です。
descriptor_area
SQLDA。
SQLDA構造がポインタとして宣言されている場合、descriptor_areaを名前またはポインタ参照(*sqldaname)としてCプログラムに指定できます。

ANSI準拠

ANSI/ISO SQL:2011準拠。

許可

なし。

一般ルール

  • SQLDAを定義する必要があります。
  • cursor_nameで特定されるカーソルは、事前に宣言しておく必要があります。
  • cursor_nameで識別されるカーソルが閉じていなければなりません。
  • いったんカーソルが開くと、システムは関連する静的または動的SQL文を実行します。その後で、システムは結果のスプール ファイルを作成し、カーソルがスプール ファイルの最初の行の前に置かれます。
  • 失敗(暗黙的なロールバック)が生じない限り、OPEN処理はSQLCAのSQLCODEフィールドで0を返し、SQLSTATEで‘00000’を返します。SQLCODEが0の場合、システムはSQLCA構造の3番目のSQLERRD要素にアクティビティ カウントを設定します。
  • カーソルが更新可能な場合、またはCまたはCOBOLアプリケーション プログラム内にカーソルのREWINDまたはPOSITION TO STATEMENTリクエストが含まれている場合は、OPEN文にKEEPRESPを指定して実行します。それ以外の場合は、NOKEEPRESPを指定して実行します。PL/Iアプリケーションの場合、KEEPRESPがデフォルトです。
  • OPENを動的SQL文として実行することはできません。
  • 一度に16を超えるカーソルを開くことはできません。カーソルが関係しない文の処理は、さらに多くのカーソルが開くとそれだけ悪い影響を受けるからです。

    アプリケーションが、開いている16個のカーソルを持っている場合、1つ以上のカーソルを閉じないと、リクエストをそれ以上発行することはできません。

USING句のルール

  • USING句はcursor_nameによってSQL文への入力として使用される変数を識別します。
  • OPEN文の前に宣言したhost_variable_nameを有効なクライアント言語の変数にしないと、入力変数として使用できません。

    クライアント構造を入力変数の識別に使用できます。

    指定する変数の数は、識別される文におけるパラメータ マーカー(疑問符、?)の数と同じでなければなりません。

    n番目の変数は、n番目のマーカーに対応しています。

    host_variable_nameの接頭辞のコロン文字は、オプションです。

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

    SQLDAのSQLDフィールドで指定される変数の数は、識別される文のパラメータ マーカー(疑問符、?)と同じでなければなりません。

    SQLDSによって記述されるn番目の変数はn番目のマーカーに対応します。

関連トピック

以下に関する詳細な情報
  • ALLOCATE文で参照されるカーソルについては、ALLOCATEを参照してください。
  • キャストの作成とAS ASSIGNMENTオプションの使用の詳細について、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。
  • descriptor_areaについては、<Teradata® Preprocessor2 for Embedded SQLプログラマ ガイド、B035-2446>を参照してください。
  • OPEN(埋め込みSQL形式)については、CLOSEを参照してください。