Oracleで格納されるユニコード・データ(UTF16)は、常にビッグエンディアン方式です。現在、クライアント・アプリケーションは様々なプラットフォームで実行されます。LinuxおよびWindowsではリトルエンディアン方式で表され、Solarisではビッグエンティアン方式で表されます。Pro*Cobolでは、UTF16のデータが挿入または選択されると、サーバーとクライアント間のエンディアン形式が変換されません。このため、PIC N変数のUTF16 (UCS2)の文字列が破損します。
PIC N変数でのプラットフォーム・エンディアン(LinuxおよびWindowsの場合はリトルエンディアン方式、Solarisの場合はビッグエンディアン方式)は、コマンドライン・オプションのpicn_endian
を使用すれば維持できます。
新しいコマンドライン・オプション
picn_endian={BIG|OS}
picn_endian=bigの場合、PIC N変数はキャラクタ・セットID AL16UTF16にバインドされます。
picn_endian=osの場合、PIC N変数はキャラクタ・セットID UCS2にバインドされます。
このオプションのデフォルト値は「big」で、現行の動作が保持されます。NLS_NCHARがAL16UTF16でない場合、このオプションは無視されます。
PIC N変数のキャラクタ・セットの形式は、既存のPro*Cobolコマンドライン・オプションを使用して設定できます。
charset_picn={nchar_charset|db_charset}