16.20 - 出力ホスト変数 - 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

データを返すSQL文の結果をTeradata Databaseから受け取ると、Preprocessor2は値を取り出し、それを対応するホスト出力変数に格納します。

有効なデータ型の組み合わせ

出力メイン ホスト変数を使用してデータをFETCHまたはSELECT文から受け取る場合、特定のSELECTリストの要素とホスト変数のデータ型との組み合わせだけが許可されます。

有効な組み合わせを以下の表に示します。これ以外に有効な組み合わせはありません。

他の組み合わせの大半は、データ型ホスト変数と互換性があるデータ型への変更をテーブルの列に対して強制することにより使用できます。

「ホスト変数のデータ型」列にリストされているデータ型は汎用のものです。

Teradata Databaseの列データ型 ホスト変数のデータ型
BYTE(m)

VARBYTE(m)

  • BYTE(n)
  • VARBYTE (n)
  • CHARACTER(n)
  • VARCHAR(n)
  • BYTEINT
  • SMALLINT
  • INTEGER
  • BIGINT
  • DECIMAL
  • NUMERIC
  • FLOAT
  • REAL
  • DOUBLE PRECISION
  • CHARACTER(n) CHARACTER SET GRAPHIC
  • VARCHAR(n) CHARACTER SET GRAPHIC
CHARACTER(m)

VARCHAR(m)

CHARACTER(n)

VARCHAR(n)

DATE (Teradata)
  • CHARACTER(n)
  • VARCHAR(n)
  • INTEGER
  • BIGINT
  • DECIMAL
  • NUMERIC
  • FLOAT
  • REAL
  • DOUBLE PRECISION
DATE (ANSI)

TIME

TIMESTAMP

INTERVAL

CHARACTER(n)
  • BYTEINT
  • SMALLINT
  • INTEGER
  • BIGINT
  • DECIMAL
  • NUMERIC
  • FLOAT
  • REAL
  • DOUBLE PRECISION
  • BYTEINT
  • SMALLINT
  • INTEGER
  • BIGINT
  • DECIMAL
  • NUMERIC
  • FLOAT
  • REAL
  • DOUBLE PRECISION
GRAPHIC(m)

VARGRAPHIC(m)

CHARACTER(n) CHARACTER SET GRAPHIC

VARCHAR(n) CHARACTER SET GRAPHIC

UDT 現在はサポートされていません。

UDTのCREATE TRANSFORM文によって定義されたfromsql変換ターゲット データ型。

割り当てルール

次の表は、出力ホスト変数の割り当てルールについての説明です。

データ型 条件 説明
BYTE m < n mバイトのデータがホスト変数に移され、(n - m)バイトのx’00’が追加される。
m = n mバイトのデータがホスト変数に移される。
m > n nバイトのデータがホスト変数に移される。標識を使用する場合mに設定される。SQLCA内のSQLWARN1は’W’に設定される。

mはデータの長さを表わす。

nはホスト変数の長さを表わす。

BYTEINT、SMALLINT、INTEGERは、それぞれ1、2、4の暗黙指定の長さを持つ。

DECIMALは、1~16バイトの長さを持つことができる。

FLOATは、single (4バイト)またはdouble (8バイト)のどちらにすることもできる。

BYTEフィールドがホスト変数に割り当てられたときは、データ変換は実行されない。返された値の処理はアプリケーションの責任である。

VARBYTE m ≤ n mバイトのデータがホスト変数に移される。
m > n nバイトのデータがホスト変数に移される。標識を使用する場合mに設定される。SQLCA内のSQLWARN1は’W’に設定される。

mは現在のデータの長さを表わす。

nはホスト変数の最大長を表わす。

BYTEINT、SMALLINT、INTEGERは、それぞれ1、2、4の暗黙指定の長さを持つ。

DECIMALは、1~16バイトの長さを持つことができる。

FLOATは、single (4バイト)またはdouble (8バイト)のどちらにすることもできる。

BYTEフィールドがホスト変数に割り当てられたときは、データ変換は実行されない。返された値の処理はアプリケーションの責任である。

CHARACTER m < n mバイトのデータがホスト変数に移され、(n - m)バイトのブランク(EBCDIC環境ではx’40’、ASCII環境ではx’20’)が追加される。
m = n mバイトのデータがホスト変数に移される。
m >n nバイトのデータがホスト変数に移される。標識を使用する場合mに設定される。SQLCA内のSQLWARN1は’W’に設定される。

mはデータの長さを表わす。

nはホスト変数の長さを表わす。

VARCHAR m ≤ n mバイトのデータがホスト変数に移される。
m > n nバイトのデータがホスト変数に移される。標識を使用する場合mに設定される。SQLCA内のSQLWARN1は’W’に設定される。

mはデータの現在の長さを表わす。nはホスト変数の最大長を表わす。

DATE (Teradata)   CHARACTERフィールド内で: Teradata Database形式が要求される場合、nは最低8バイトでなければならない。その他のすべての形式でnは最低10バイトにする必要がある。残りのバイトはブランクに設定される(EBCDIC環境ではx’40’、ASCII環境ではx’20’)。ホスト変数が、要求されたデータ形式を含むことができない場合、SQLCAのSQLCODEは-304に設定される。
数値フィールド内で: 値は、指定されたタイプで表示できなければならず、先頭の数字が欠落してはならない。ホスト変数がデータを含むことができない場合、SQLCAのSQLCODEは-304に設定される。
DATE (ANSI)

TIME

TIMESTAMP

INTERVAL

  Teradata Database形式が要求される場合、nは最低8バイトでなければならない。その他のすべての形式でnは最低10バイトにする必要がある。残りのバイトはブランクに設定される(EBCDIC環境ではx’40’、ASCII環境ではx’20’)。ホスト変数が、要求されたデータ形式を含むことができない場合、SQLCAのSQLCODEは-304に設定される。
  • BYTEINT
  • SMALLINT
  • INTEGER
  • BIGINT
  • DECIMAL
  • NUMERIC
  • FLOAT
  • REAL
  • DOUBLE PRECISION
  値は、指定されたタイプで表示できなければならず、先頭の数字が欠落してはならない。ホスト変数がデータを含むことができない場合、SQLCAのSQLCODEは-304に設定される。

関連トピック

UDTデータ型の詳細については、<Teradata Vantage™ SQLデータ定義言語の構文規則および例、B035-1144>の「CREATE TRANSFORM」を参照してください。