適切に構成されたデータベース中で、ESQL を使用して、ODBC によってデータベースにアクセスするノードで、Unicode Standard バージョン 3.0 データを取り扱うことができます。ブローカーは、データベースに定義された表内の DBCS 専用の列をサポートしません。
Unicode のサポートは、以下のデータベース・マネージャーの、一般にサポートされているバージョンでのみ使用可能です。
- IBM® DB2 v9 for Windows®、Linux®、UNIX®、および z/OS® オペレーティング・システム。
- Oracle
- Microsoft® SQL Server
- Sybase Adaptive Server Enterprise (ASE)
JDBC を使用してデータベースにアクセスするノードでは、Unicode データ操作のサポートは使用不可です (例えば、DatabaseRetrieve および DatabaseRoute)。
以下の説明は、32 ビットおよび 64 ビット・アプリケーションの両方に適用されます。
DB2 を使用している場合:
- Windows、Linux、および UNIX オペレーティング・システム上で、データベースは utf-8 コード・セットを指定して作成される必要があります。
- z/OS 上で、ブローカーの環境にある MQSI_DB2_CONVERSION 変数および ODBC 定義中の CURRENTAPPENSCH 設定値を、共に Unicode という値に設定する必要があります。
- すべてのプラットフォーム上で、DB2 はストリング長を文字数ではなく、バイト数で返します。このことは、ストリング長に関係した ESQL 関数の動作に影響を及ぼします。
Oracle を使用している場合:
- AL32UTF8 の NLS_CHARACTERSET を指定して、データベースが作成される必要があります。
- ODBC データ・ソース定義には、ColumnSizeAsCharacter=1 という設定値が含まれている必要があります。
UNIX および Linux プラットフォーム上では、この設定値が ODBC ini ファイルの適切なスタンザに含まれる必要があります。
Windows プラットフォームの場合、このストリング値がレジストリー中の ODBC データ・ソース・キーに追加される必要があります。
詳細は、データベースへの ODBC 接続の使用可能化を参照してください。
- 32 ビット接続の場合、ブローカーの環境にある NLS_LANG 変数を <yourlanguage>.<yourterritory>.AL32UTF8 という値に設定する必要があります。
Microsoft SQL サーバーを使用している場合:
- 列定義として NCHAR、NVARCHAR、および NTEXT データ・タイプを使用する必要があります。
- UNIX および Linux プラットフォーム上のブローカーの場合、ODBC データ・ソース定義には ColumnSizeAsCharacter=1 という設定が含まれなければなりません。この設定値は、ODBC ini ファイルの適切なスタンザに含められる必要があります。
Sybase ASE を使用している場合:
- ASE サーバーのデフォルトの文字セットは、UTF-8 でなければなりません。
- ODBC データ・ソース定義には、ColumnSizeAsCharacter=1 および CharSet=UTF8 という設定が含まれている必要があります。
UNIX および Linux プラットフォーム上では、この設定値が ODBC ini ファイルの適切なスタンザに含まれる必要があります。
Windows プラットフォームの場合、このストリング値がレジストリー中の ODBC データ・ソース・キーに追加される必要があります。
詳細は、データベースへの ODBC 接続の使用可能化を参照してください。