可変長バイナリ文字列

可変長バイナリ文字列 (VARBINARY, LONG-VARBINARY, LONG VARCHAR FOR BIT DATA) はドライバの規定する最大長までの可変長バイト列を格納する SQLデータ型です。

ホスト変数形式

OpenESQL
01 varbin-field1      SQL TYPE IS VARBINARY(2000).
01 varbin-field2      SQL TYPE IS LONG-VARBINARY(20000).
01 varbin-field3.
   49 varbin-field3-len    PIC S9(4) COMP-5.
   49 varbin-field3-data   PIC X(2000).
  • 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バイトとなります。
  • varbin-field1 の形式は VARBINARY SQL TYPE を使用します。
  • The varbin-field2 の形式は LONG-VARBINARY SQL TYPE を使用します。
OpenESQL JVM マネージランタイム
OpenESQL で利用可能なホスト変数定義に加えて、次の定義も OpenESQL JVM マネージランタイムでは利用可能です。
01 varbin-field5      type java.lang.byte[].

OpenESQL JVM マネージランタイムのアプリケーションではバイト数の上限がありません。

DB2 ECM
01 varbin-field3.
   49 varbin-field3-len    PIC S9(4) COMP-5.
   49 varbin-field3-data   PIC X(2000).
  • 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で使用することができます。