16.20 - SQLDAの構造 - Teradata Vantage NewSQL Engine

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

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1148-162K-JPN

以下の表では、SQLDAのフィールドについて説明します。

フィールド名 形式 説明
SQLDAID CHARACTER(8) SQLDA文字を含みます。
SQLDABC INTEGER SQLDAの長さ。(16 + (44 * SQLN値))の式で計算され、INTO句を指定したDESCRIBE文またはPREPARE文の実行時にプリプロセッサによって設定されます。

入力の場合、アプリケーションはこのフィールドをSQLDA構造のサイズにセットする必要があります。

出力の場合、プリプロセッサは、このサイズをDESCRIBEまたはPREPARE INTOリクエストによって戻される列数(SQLD)が十分入るだけのサイズにセットします。

SQLN SHORT INTEGER SQLVAR配列内の要素の合計数。

アプリケーションは、このフィールドをプリプロセッサ(SQLVAR)が使用できる要素数に設定します。

入力の場合、SQLNはOPENまたはEXECUTE文の前に設定する必要があります。

出力の場合、SQLNはDESCRIBEまたはPREPARE INTOリクエストの前に設定する必要があります。

USING節のBOTHオプションを使用する場合は、最低2度は戻される列としてSQLVAR要素数を指定する必要があります。

SQLD SHORT INTEGER 変数の記述を保持するために現在使用されているSQLVAR配列内の要素数。

入力の場合、アプリケーションは、このフィールドを入力変数情報で使用するSQLVAR要素数に設定します。

この値は、OPENまたはEXECUTE文の前に設定する必要があります。

出力の場合、プリプロセッサは、DESCRIBEまたはPREPARE INTOリクエストを使用したSQLVAR要素の数を戻します。

定義されている要素が少ないためDESCRIBEの条件を満たさない場合、SQLDは必要な数に設定され、SQLVAR要素は戻されません。

USING節のBOTHオプションを使用する場合は、最低2度は戻される列としてSQLVAR要素数を指定する必要があります。

SQLVAR 配列 結果データの列を記述する二次レベル構造の反復が含まれています。
SQLVAR要素の構造は、以下のとおりです。
  • SQLTYPE (SHORT INTEGER)

    列のデータ型と、そのNULL可能性属性を表わすコードが入ります。

    データ型コードの説明については、SQLDAデータ型コードを参照してください。

    入力の場合、アプリケーションは、OPENまたはEXECUTE文より前に入力ホスト変数のタイプを設定します。

    出力の場合、DESCRIBE文を実行すると、このタイプが戻されます。

    データを受け取るホスト変数のタイプが戻される値と異なる場合、アプリケーションは、FETCHを実行する前に正しいデータ型がそのフィールドにあるかどうか確認します。

  • SQLLEN (SHORT INTEGER)

    DECIMAL以外のすべてのデータ型のデータ長。

    DECIMALの場合、SQLLENはSQLPRCSNおよびSQLSCALEとして多重定義されます。

  • SQLPRCSN (BYTE INTEGER - SQLLENの高位バイト)

    小数精度(合計桁数)

  • SQLSCALE (BYTE INTEGER - SQLLENの低位バイト)

    小数の桁数(小数点以下の桁数)

入力の場合、アプリケーションは、OPENまたはEXECUTE文より前に入力ホスト変数の長さを設定します。

出力の場合、プリプロセッサは、列のデータ長を戻します。

ホスト変数の長さが戻される値と異なる場合、アプリケーションは、FETCHを実行する前に正しい長さがそのフィールドにあるかどうかを確認します。

SQLDATA ポインタ 以下のいずれかを、プリ プロセッサに指示します。
  • 値が取られる入力ホスト変数のアドレス
  • 結果の値を保管する出力ホスト変数

アプリケーションは、OPEN、EXECUTE、またはFETCH文を実行する前にこのフィールドを設定する必要があります。

COBOLでアドレスを設定する方法の例については、<Teradata® Preprocessor2埋め込みSQLプログラマ ガイド、B035-2446>を参照してください。

SQLIND ポインタ SQLDATAが指し示す入力/出力ホスト変数に関連付けられた標識変数のアドレスを、プリ プロセッサに示します。

アプリケーションは、このフィールドを、アドレスがSQLDATA内にあるフィールドで使用する関連する標識変数(ある場合)のアドレスに設定します。

標識変数を使用しない場合、このフィールドはx'00'に設定する必要があります。

アプリケーションは、OPEN、EXECUTE、またはFETCH文を実行する前にこのフィールドを設定する必要があります。

SQLNAME VARCHAR (30) 以下のいずれかが入ります。
  • 列名。
  • 列のタイトル。

入力の場合、このフィールドには入力ホスト変数としての意味合いはありません。

出力の場合、プリプロセッサは、このフィールドをUSING節にある情報に基づき設定します。

このフィールドを使用するのは、アプリケーションだけです。プリプロセッサが使用することはありません。