TEXT and BYTE (LOB) types

Informix®

Informix provides the TEXT, BYTE, CLOB and BLOB data types to store very large texts or binary data.

Legacy Informix 4GL applications typically use the TEXT and BYTE types.

Genero BDL does not support the Informix CLOB and BLOB types.

Oracle® MySQL and MariaDB

MySQL provides the following types to store large objects in the database:

Table 1. MySQL and MariaDB LOB data types
MySQL data type Description
TINYTEXT To store text data with a length < 2^8 bytes
TEXT To store text data with a length < 2^16 bytes
MEDIUMTEXT To store text data with a length < 2^24 bytes
LONGTEXT To store text data with a length < 2^32 bytes
TINYBLOB To store binary data with a length < 2^8 bytes
BLOB To store binary data with a length < 2^16 bytes
MEIDUMBLOB To store binary data with a length < 2^24 bytes
LONGBLOB To store binary data with a length < 2^32 bytes

Solution

The MySQL and MariaDB database interface can convert BDL TEXT data to LONGTEXT and BYTE data to LONGBLOB.

The TEXT and BYTE types translation can be controlled with the following FGLPROFILE entries:
dbi.database.dsname.ifxemul.datatype.text = { true | false }
dbi.database.dsname.ifxemul.datatype.byte = { true | false }
For more details see IBM Informix emulation parameters in FGLPROFILE.

Genero TEXT/BYTE program variables have a limit of 2 gigabytes, make sure that the large object data does not exceed this limit.

Note: Because MySQL/MariaDB CHAR and VARCHAR cannot exceed 255 bytes, we recommend that you use the MySQL TEXT type to store CHAR/VARCHAR values with a size larger than 255 bytes. When fetching TEXT columns from a MySQL database, these will be treated as CHAR/VARCHAR types by the MySQL database driver. See CHAR/VARCHAR types for more details.