dポイントプレゼントキャンペーン実施中!

Oracle8i環境のデータベースで文字化けが発生しています。

データベース作成時に、管理者が文字コードを指定するのを忘れてしまい、
NLS_CHARSETが US7ASCII となっています。
(本来はJA16SJISが正しい)

既にテーブルも作成され、データも挿入されているので、
なんとかデータベースの再作成は避けたいのですが、
何か方法がありますでしょうか?
(例えばALTER DATABASE文などで・・・)
よろしくお願いいたします。

A 回答 (1件)

US7ASCII であれば、以下のSQL 文で変換できないですか?



SQL> ALTER DATABASE CHARACTER SET JA16SJIS;
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
「Oracle8i NLSガイド」に『データベース作成後のキャラクタ・セットの変更』という章があったので、
そこに書かれていた以下の処理を実行しました。

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_ORICESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET JA16SJIS;
SHUTDOWN IMMEDIATE;
STARTUP;

そして、再度
SELECT NLS_CHARSET_NAME(1) FROM DUAL;

SELECT VALUE FROM NLS_DATABASE_PARAMETERS;
などを実行して文字コードを確認してみましたが、
US7ASCIIから変更されていませんでした・・・。
しかもなぜか、Object Browserでテーブルの詳細を見ようとすると、
Object Browserが落ちるようになってしまいました。。。(汗)


文字コードの変更前に実行したALTER SYSTEM文が原因でしょうか?
ご教授お願い致します。

お礼日時:2007/08/29 16:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!