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 integration node does not support DBCS-only columns in tables that are defined in databases.

The integration node 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 integration node 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 IBM Db2.
Support for Unicode is available only for the generally-supported versions of the following database managers:
  • IBM® IBM Db2 for Windows, Linux®, UNIX, and z/OS operating systems.
  • Oracle
  • Microsoft SQL server
  • Sybase Adaptive Server Enterprise (ASE)
For information about the versions of databases supported, see IBM Integration Bus system requirements.

Support for the manipulation of Unicode data is not available for nodes that access databases that use JDBC; for example, DatabaseRetrieve and DatabaseRoute.

If you are using IBM Db2:
  • 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 integration node environment to the value UNICODE. In the ODBC definition add the statement CURRENTAPPENSCH=UNICODE to the [COMMON] stanza.
  • On all platforms, IBM 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 IBM Db2 for further information.

If you are using Oracle:
  • 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 integration node environment to the value <yourlanguage>_<yourterritory>.AL32UTF8.
if you are using Microsoft SQL server:
  • You must use NCHAR, NVARCHAR, and NTEXT data types for your column definitions.
  • For integration nodes 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.
If you are using Sybase ASE:
  • 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.