特定の定義済み FORTRAN のデータ・タイプは、データベース・マネージャーの列のタイプに対応しています。ホスト変数として宣言できるのは、これらの FORTRAN データ・タイプのみです。
表 34 は、それぞれの列タイプに対応する FORTRAN データ・タイプを示します。プリコンパイラーはホスト変数宣言を検出すると、該当する SQL データ・タイプの値を判別します。データベース・マネージャーはこの値を使用して、アプリケーションとの間でやりとりするデータを変換します。
注: | DB2 ホスト言語で、DATALINK データ・タイプをサポートするホスト変数はありません。 |
表 34. FORTRAN 宣言にマップされる SQL データ・タイプ
SQL 列タイプ1 | FORTRAN データ・タイプ | SQL 列タイプ記述 |
---|---|---|
SMALLINT (500 または 501) | INTEGER*2 | 16 ビットの符号付き整数 |
INTEGER (496 または 497) | INTEGER*4 | 32 ビットの符号付き整数 |
REAL2 (480 または 481) | REAL*4 | 単精度浮動小数点 |
DOUBLE3 (480 または 481) | REAL*8 | 倍精度浮動小数点 |
DECIMAL(p,s) (484 または 485) | 厳密に対応するものがない ; REAL*8 を使用 | パック 10 進数 |
CHAR(n) (452 または 453) | CHARACTER*n | 長さが n の固定長文字ストリング。 n の範囲は 1 〜 254 |
VARCHAR(n) (448 または 449) | SQL TYPE IS VARCHAR(n) n の範囲は 1 〜 32 672 | 可変長文字ストリング |
LONG VARCHAR (456 または 457) | SQL TYPE IS VARCHAR(n) n の範囲は 32 673 〜 32 700 | long 可変長文字ストリング |
CLOB(n) (408 または 409) | SQL TYPE IS CLOB (n) n の範囲は 1 〜 2 147 483 647 | ラージ・オブジェクト可変長文字ストリング |
CLOB ロケーター変数4 (964 または 965) | SQL TYPE IS CLOB_LOCATOR | サーバー上の CLOB 実体を識別する |
CLOB ファイル参照変数4 (920 または 921) | SQL TYPE IS CLOB_FILE | CLOB データを含むファイルの記述子 |
BLOB(n) (404 または 405) | SQL TYPE IS BLOB(n) n の範囲は 1 〜 2 147 483 647 | ラージ・オブジェクト可変長 2 進ストリング |
BLOB ロケーター変数4 (960 または 961) | SQL TYPE IS BLOB_LOCATOR | サーバー上の BLOB 実体を識別する |
BLOB ファイル参照変数4 (916 または 917) | SQL TYPE IS BLOB_FILE | BLOB データを含むファイルの記述子 |
DATE (384 または 385) | CHARACTER*10 | 10 バイトの文字ストリング |
TIME (388 または 389) | CHARACTER*8 | 8 バイトの文字ストリング |
TIMESTAMP (392 または 393) | CHARACTER*26 | 26 バイトの文字ストリング |
サポートされているデータ・タイプそれぞれについて宣言されたホスト変数を含む、 SQL 宣言のサンプルを以下に示します。
EXEC SQL BEGIN DECLARE SECTION INTEGER*2 AGE /26/ INTEGER*4 DEPT REAL*4 BONUS REAL*8 SALARY CHARACTER MI CHARACTER*112 ADDRESS SQL TYPE IS VARCHAR (512) DESCRIPTION SQL TYPE IS VARCHAR (32000) COMMENTS SQL TYPE IS CLOB (1M) CHAPTER SQL TYPE IS CLOB_LOCATOR CHAPLOC SQL TYPE IS CLOB_FILE CHAPFL SQL TYPE IS BLOB (1M) VIDEO SQL TYPE IS BLOB_LOCATOR VIDLOC SQL TYPE IS BLOB_FILE VIDFL CHARACTER*10 DATE CHARACTER*8 TIME CHARACTER*26 TIMESTAMP INTEGER*2 WAGE_IND EXEC SQL END DECLARE SECTION
以下に、サポートされる FORTRAN データ・タイプのその他の規則を示します。