oracleで文字コードをUTF-8に変更の方法
OracleデータベースのエンコーディングをUTF-8に変更する必要があります。以下の手順に従ってください。
- Oracleデータベースサーバにログインする。
- SQL*Plusまたはコマンドラインウィンドウを開き、管理者権限でデータベースへログインします。例えば、次のコマンドを入力してデータベースにログインします
- natively in japanese: sqlplus -s / as sysdba
- データベースが変更できるようにアーカイブモードであることを確認します。アーカイブモードでない場合は、次のコマンドを使用してアーカイブモードに切り替えます。
- ALTER DATABASE ARCHIVELOG;
- 次のコマンドを使用してデータベースインスタンスを停止します。
- シャットダウン イミディエイト;
- NLS_CHARACTERSETパラメータをUTF8に設定するには、データベースパラメータファイル(init.oraまたはspfile)を編集します。任意のテキストエディタでファイルを開いて編集できます。
- NLS_CHARACTERSET = AL32UTF8
- 下記コマンドを実行してデータベースインスタンスを起動します。
- スタートアップ
- インスタンスの起動後は、既存のデータベース内のすべてのテーブル、カラム、データのエンコード変換を行う必要があります。このタスクを完了するには、 オラクルが提供する「Database Migration Assistant for Unicode(DMU)」ツールを使用できます。DMUツールはオラクル社の公式ウェブサイトからインストールできます。
- DMUツールを使用すると、変換するデータベースオブジェクト(例:表、列、索引など)を選択し、ターゲット文字セットをUTF-8に設定できます。すると、ツールはオブジェクトの文字セットを現在のエンコーディングからUTF-8に自動的に変換します。
- DMUツールによる移行を実行する前に、必ずデータベースのバックアップを作成してデータ損失を防いでください。
上記の手順を実行すると、OracleデータベースはUTF-8エンコーディングで稼働します。