固定長バイナリ文字列

固定長バイナリ文字列 (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で使用することができます。