データを返すSQL文の結果をデータベースから受け取ると、Preprocessor2は値を取り出し、それを対応するホスト出力変数に格納します。
有効なデータ型の組み合わせ
出力メイン ホスト変数を使用してデータをFETCHまたはSELECT文から受け取る場合、特定のSELECTリストの要素とホスト変数のデータ型との組み合わせだけが許可されます。
有効な組み合わせを以下の表に示します。これ以外に有効な組み合わせはありません。
他の組み合わせの大半は、データ型ホスト変数と互換性があるデータ型への変更をテーブルの列に対して強制することにより使用できます。
「ホスト変数のデータ型」列にリストされているデータ型は汎用のものです。
データベースの列データ型 | ホスト変数のデータ型 |
---|---|
BYTE(m) VARBYTE(m) |
|
CHARACTER(m) VARCHAR(m) |
CHARACTER(n) VARCHAR(n) |
DATE (Teradata) |
|
DATE (ANSI) TIME TIMESTAMP INTERVAL |
CHARACTER(n) |
|
|
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形式が要求される場合、nは最低8バイトでなければならない。その他のすべての形式でnは最低10バイトにする必要がある。残りのバイトはブランクに設定される(EBCDIC環境ではx’40’、ASCII環境ではx’20’)。ホスト変数が、要求されたデータ形式を含むことができない場合、SQLCAのSQLCODEは-304に設定される。 | |
数値フィールド内で: 値は、指定されたタイプで表示できなければならず、先頭の数字が欠落してはならない。ホスト変数がデータを含むことができない場合、SQLCAのSQLCODEは-304に設定される。 | ||
DATE (ANSI) TIME TIMESTAMP INTERVAL |
Teradata形式が要求される場合、nは最低8バイトでなければならない。その他のすべての形式でnは最低10バイトにする必要がある。残りのバイトはブランクに設定される(EBCDIC環境ではx’40’、ASCII環境ではx’20’)。ホスト変数が、要求されたデータ形式を含むことができない場合、SQLCAのSQLCODEは-304に設定される。 | |
|
値は、指定されたタイプで表示できなければならず、先頭の数字が欠落してはならない。ホスト変数がデータを含むことができない場合、SQLCAのSQLCODEは-304に設定される。 |
関連情報
UDTデータ型の詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>のCREATE TRANSFORMに関する情報を参照してください。