See information about the latest product version
Support for Unicode and DBCS data in databases
You can manipulate Unicode Standard version 3.0 data, in suitably configured databases, using ESQL, in nodes that access databases by ODBC. The broker does not support DBCS-only columns in tables that are defined in databases.
The broker does not, therefore, support certain data types, including the following types:
- NCHAR, NVARCHAR, NVARCHAR2, NCLOB (on Oracle)
- NCHAR, NVARCHAR, NTEXT, UNICHAR, UNIVARCHAR (on Sybase)
- NCHAR, NVARCHAR (on Informix®)
GRAPHIC, VARGRAPHIC, LONGVARGRAPHIC, and DBCLOB data type support on DB2® is provided for the broker with the following limitations:
- Due to issues related to the z/OS® Unicode support when calling stored procedures by using PASSTHRU, you must not use this method of calling stored procedures. For more information, see PASSTHRU statement.
- Using the DB2 string functions with Unicode data can return unexpected results. For more information, see Unicode string functions in DB2.
- IBM® DB2 for Windows, Linux, UNIX, and z/OS operating systems.
- Oracle
- Microsoft SQL server
- Sybase Adaptive Server Enterprise (ASE)
Support for the manipulation of Unicode data is not available for nodes that access databases that use JDBC; for example, DatabaseRetrieve and DatabaseRoute.
The following instructions apply to both 32-bit and 64-bit applications.
- On Windows, Linux, and UNIX operating systems, your database must be created with code set utf-8.
- On z/OS, set the variable MQSI_DB2_CONVERSION in the broker environment to the value UNICODE. In the ODBC definition add the statement CURRENTAPPENSCH=UNICODE to the [COMMON] stanza.
- On all platforms, DB2 returns
the lengths of strings in bytes, rather than characters; this response
has implications for the behavior of string length-related ESQL functions.
Some functions might fail, or function differently, when processed by the database. See Unicode string functions in DB2 for further information.
- Your database must be created with NLS_CHARACTERSET of AL32UTF8.
- Your ODBC data source definition must include the setting ColumnSizeAsCharacter=1.
On UNIX and Linux platforms, this setting must be included in the appropriate stanza in the ODBC ini files.
On Windows platforms, this string value must be added to the ODBC data source key in the registry.
See Enabling ODBC connections to the databases for further information.
- For 32-bit connections, you must set the variable NLS_LANG in the broker environment to the value <yourlanguage>_<yourterritory>.AL32UTF8.
- You must use NCHAR, NVARCHAR, and NTEXT data types for your column definitions.
- For brokers on UNIX and Linux platforms, your ODBC data source definition must include the setting ColumnSizeAsCharacter=1; this setting must be included in the appropriate stanza in the ODBC .ini files.
- The default character set of your ASE server must be UTF-8.
- Your ODBC data source definition must include the settings ColumnSizeAsCharacter=1 and CharSet=UTF8.
On UNIX and Linux platforms, this setting must be included in the appropriate stanza in the ODBC .ini files.
On Windows platforms, this string value must be added to the ODBC data source key in the registry.
See Enabling ODBC connections to the databases for further information.