ホスト変数の基本 SQLTYPE および SQLLEN は、次の表のとおりに決定されます。ホスト変数が標識変数とともに指定される場合、SQLTYPE は基本 SQLTYPE に 1 を 加えた値です。
| PL/I データ型 | ホスト変数の SQLTYPE | ホスト変数の SQLLEN | SQL データ型 |
|---|---|---|---|
| BIN FIXED(n)、n < 16 | 500 | 2 | SMALLINT |
| BIN FIXED(n)、n の範囲は 16 から 31 | 496 | 4 | INTEGER |
| DEC FIXED(p,s) | 484 | p (バイト 1) s (バイト 2) | DECIMAL(p,s) |
| BIN FLOAT(p)、22 <= p <= 53 | 480 | 8 | FLOAT |
| DEC FLOAT(m)、7 <= m <= 16 | 480 | 8 | FLOAT |
| CHAR(n)、1 <= n <= 254 | 452 | n | CHAR(n) |
| CHAR(n) VARYING、1 <= n <= 4000 | 448 | n | VARCHAR(n) |
| CHAR(n) VARYING、n > 4000 | 456 | n | LONG VARCHAR |
| GRAPHIC(n)、1 <= n <= 127 | 468 | n | GRAPHIC(n) |
| GRAPHIC(n) VARYING、1 <= n <= 2000 | 464 | n | VARGRAPHIC(n) |
| GRAPHIC(n) VARYING、n > 2000 | 472 | n | LONG VARGRAPHIC |
SQL には、単一精度または拡張精度の浮動小数点データ型が存在しないため、データ挿入に、同データ型のホスト変数を使用すると、ホスト変数は、倍精度浮動小数点の一時値に変換され、その一時値がデータベースに挿入されます。単一精度または拡張精度の浮動小数点ホスト変数を使用してデータ検索を行うと、倍精度浮動小数点の一時値が、データベースに対するデータ検索に使用され、一時変数の結果がホスト変数に代入されます。
次の表を使用して、特定の SQL データ型と同等な PL/I データ型 を判別できます。
| SQL データ型 | 同等な PL/I 宣言 | 注 |
|---|---|---|
| SMALLINT | BIN FIXED(15) | |
| INTEGER | BIN FIXED(31) | |
| DECIMAL(p,s) | DEC FIXED(p) または DEC FIXED(p,s) | p = precision および s = scale; 1 <= p <= 31 および 0 <= s <= p |
| FLOAT | BIN FLOAT(p) または DEC FLOAT(m) | 22 <= p <= 53 7 <= m <= 16 |
| CHAR(n) | CHAR(n) | 1 <= n <= 254 |
| VARCHAR(n) | CHAR(n) VAR | 1 <= n <= 4000 |
| LONG VARCHAR | CHAR(n) VAR | n > 4000 |
| GRAPHIC(n) | GRAPHIC(n) | n は、2 バイト文字の数を示す (バイト数ではない) 1 から 127 の正整数 |
| VARGRAPHIC(n) | GRAPHIC(n) VAR | n は、2 バイト文字の数を示す (バイト数ではない) 正整数。 1 <= n <= 2000 |
| LONG VARGRAPHIC | GRAPHIC(n) VAR | n > 2000 |
| DATE | CHAR(n) | n の最小値は 10 |
| TIME | CHAR(n) | n の最小値は 8 |
| TIMESTAMP | CHAR(n) | n の最小値は 26 |