RikuMoto
@RikuMoto (Riku Moto)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

oracleデータベースで文字化けを解消したい

解決したいこと

oracleDBのテーブルカラムに全角日本語を登録すると「逆さまのはてな」が表示されます。
DBeaverをつかっているのですが、日本語を入力してセーブを押すとまでは問題ないのですが、更新ボタンをおすと「逆さまのはてな」が登録されています。
※Dockerで立ち上げています。

どなたか文字化けを解除する方法教えてください。

自分で試したこと

環境変数をNLS_LANG=Japanese_Japan.AL32UTF8こちらは設定しております。

0

1Answer

どこに問題があるかをまず切り分けてください。
・DBの文字コードを確認する
・別のツールでDB操作してみる、文字エンコーディング指定が可能なら指定する
・DB接続方法を変える

2Like

Comments

  1. @RikuMoto

    Questioner

    ・DBの文字コードを確認する
     LWE8DEC
    ・別のツールでDB操作してみる、文字エンコーディング指定が可能なら指定する
     LA5m2で行いました。エンコーディング指定はutf-8でしたが挙動は変わりませんでした。
    ・DB接続方法を変える
     L接続方法でエンコーディング変えられるような項目がないため設定できませんでした。

    このことから最初の文字コードを設定すれば日本語入力可能といえますかね
  2. DBのキャラクタセットに問題があるなら、Oracleの場合は基本的にDBのコンバートか作り直しになると思います。バージョンによって手順が異なるようです。まだデータが入っていないなら、AL32UTF8で作り直した方が早いかもしれません。

    https://rainbow-engine.com/modify-charset-oracle11g-overview/
  3. @RikuMoto

    Questioner

    どのタイミングでAL32UTF8こちらをセットしてつくりなおすのでしょうか?
  4. そもそも、最近のOracleはデフォルトでAL32UTF8になると思いますが。ご自身でDB作成した訳じゃないんですか?
  5. @RikuMoto

    Questioner

    私の上位者が作成しました。
    DBはorclpdb1.localomainを使っています。
  6. DB作った人に説明して、正しいキャラクタセットで作り直して貰うか、ご自身で作り直すかどちらかしかないとは思いますが、DBの作成方法が分からないという所からだと質問のタイトルとズレてくるので、別に質問を立てていただければと思います。
  7. @RikuMoto

    Questioner

    スキーマ作成時にセットすることは可能でしょうか?

Your answer might help someone💌