Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの設定 » 国際言語と文字セット » 国際言語と文字セットのタスク

 

データベースの照合を変更する

データベースの照合を変更するには、データベースを再構築する必要があります。照合はデータベースの作成時に選択されるものであり、変更はできません。

♦  照合を変更するには、次の手順に従います。
  1. 既存のデータベースの文字セットを次のコマンドで確認します。

    SELECT DB_PROPERTY( 'CharSet' );

    SQL Anywhere の初期バージョンでは、このプロパティがない場合があります。文字セットは照合名で判断することもできます。たとえば、照合 1252LATIN1 はコード・ページ 1252 を使用しています。

  2. 既存のデータベースに格納されているデータの文字セットを確認します。

    この文字セットはデータベースの文字セットと同じか、互換性があるはずです。そうでない場合は、データベースの再構築が必要になりますが、再構築のプロセスには細心の注意が必要です。

    特に、使用しているデータベースの照合が 850LATIN1 であり、使用している SQL Anywhere が初期バージョンであるため文字セット変換がサポートされていないか (バージョン 5 以前) デフォルトで無効になっており (バージョン 6 と 7)、クライアント・アプリケーションが標準的な Windows アプリケーションの場合、データベースにコード・ページ 1252 の文字データが含まれている可能性があります (通常はコード・ページ 850 に含まれる文字データです)。このケースに該当するかどうかを簡単にテストするには、UNLOAD TABLE に ENCODING オプションを指定して文字データの一部をアンロードし、Windows のメモ帳で表示します。アクセント記号付きデータが正しい場合、データベースに含まれている文字データは Windows ANSI コード・ページに対応しており、英語と西ヨーロッパ言語の場合はコード・ページ 1252 です。データが DOS ベースのエディタで正常に表示される場合、文字データは Windows OEM コード・ページに対応しており、通常は 437 または 850 です。

  3. データベースをアンロードします。

    データの文字セットがデータベースの文字セットと互換性がない場合、文字セット変換なしでデータをアンロードすることが重要です。使用されている SQL Anywhere によっては、dbunload の内部アンロード機能を使用したり、UNLOAD TABLE 文を使用してデータを手動でアンロードしたりできます。

  4. 新しいデータベースを作成し、使用する照合と文字セットを指定します。

  5. データを新しいデータベースにロードします。

    アンロードしたデータとスキーマ (reload.sql) が再ロードに使用するコンピュータの文字セットに対応している場合、dbunload の外部再ロード・オプションを使用できます。データは、サーバの文字セット変換により、データベースの正しい文字セットに自動変換されます。

    データのエンコードがデータベースの文字セットと一致してなく、データのロードに LOAD TABLE 文 (内部再ロード) を使用している場合は、ENCODING 句を使用する必要があります。データベース・サーバは、LOAD TABLE 文を使用してロードされたデータに対し、デフォルトでは文字セット変換を実行しません。

    データのエンコードが作業に使用しているコンピュータのコード・ページと一致せず、ロードに INPUT 文 (外部再ロード) を使用している場合は、ENCODING 句を使用する必要があります。そうしないと、データベース・サーバはデータがコンピュータのネイティブ文字セットであると想定します。

参照