固定長バイナリ文字列 (RAW, BINARY, CHAR(x) FOR BIT DATA) はドライバの規定する最大長までのバイト列を格納する SQLデータ型です。
ホスト変数形式
- OpenESQL
-
03 bin-field1 PIC X(5).
03 bin-field2 SQL TYPE IS BINARY(200).
- SQL BINARY, VARBINARY, IMAGE のデータは COBOL では PIC X (n) フィールドで表現されます。
- OpenESQL はデータ変換を行いません。
-
データベースからデータが取り出される際に、ホスト変数の長さが実際のデータよりも短い場合にはデータは桁詰めされて SQLCAデータ構造内の SQLWARN1フィールドに
W が設定されます。
もしホスト変数が実際のデータ長よりも長い場合にはフィールド末尾は null (x"00") で充填されます。
-
BINARY, VARBINARY または LONG-VARBINARY のカラムに INSERTするには以下のいずれかを使用します。
- 動的SQL文を使用する。
- アプリケーションを SQL(ALLOWNULLCHAR) 指令でコンパイルする。
- SQL TYPE ホスト変数を使用する。
-
JVM のByte 型ホスト変数を使用する。
- ネイティブコードの OpenESQL では操作可能な上限は 65000バイトとなります。
-
PIC X のホスト変数を使用する場合に、変数中に格納された NULL文字 (X'00') による桁詰めを防ぐために SQL(ALLOWNULLCHAR) 指令でコンパイルしてください。
-
bin-field2 の形式は BINARY SQL TYPE を使用します。
- OpenESQL JVM マネージランタイム
- OpenESQL で利用可能なホスト変数定義に加えて、次の定義も OpenESQL JVM マネージランタイムでは利用可能です。
01 bin-field5 type java.lang.byte[].
01 bin-field6 type java.lang.byte occurs 200 times.
OpenESQL JVM マネージランタイムのアプリケーションではバイト数の上限がありません。
- DB2 ECM
-
03 bin-field1 PIC X(5).
- BINARY を表現するには CHAR FOR BIT DATA のカラムを使用します。
- VARBINARY を表現するには VARCHAR(n) FOR BIT DATA のカラムを使用します。
- LONG-VARBINARY を表現するには LONG VARCHAR FOR BIT DATA のカラムを使用します。
- IBM ODBCドライバは IBM純正データ型ではなく BINARY, VARBINARY および LONG VARBINARY のデータ型を返します。
- IMAGE データ型は BLOB で表現することができます。
-
DB2 は最大 2Gbまでの非常に長いカラムには CLOB/BLOB/グラフィックLOB を使用します。これらのデータ型を静的SQLで使用することができます。