可変長バイナリ文字列 (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-field4 type System.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で使用することができます。