データを返す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に関する情報を参照してください。