Oracleのデータ化け解決策

問題の説明

  PLSQL を使用して中国語を挿入すると、データが文字化けします。

ここに画像の説明を挿入します

原因分析

PLSQLクライアントで使用されるエンコードがサーバー側のエンコードと一致しないため、中国語の文字を挿入すると文字化けが発生します。

解決

  サーバー側のエンコーディングを表示する

select userenv('language') from dual;

ここに画像の説明を挿入します
クエリの実際の結果は次のとおりです: AMERICAN_AMERICA.ZHS16GBK

   NLS_LANGUAGE の V$NLS_PARAMETERS 項目を確認してください。

select * from V$NLS_PARAMETERS WHERE PARAMETER = 'NLS_LANGUAGE

ここに画像の説明を挿入します
私のものは AMERICAN ですが、最初のステップの AMERICAN_AMERICA.ZHS16GBK と矛盾しています。環境変数を設定する必要があります。

  PLSQLクライアント・コンピュータによる環境変数の設定

[コンピューター] -> [プロパティ] -> [システムの詳細設定] -> [環境変数] -> [新規
設定] 変数名: NLS_LANG、変数値: 手順 1 で見つかった値、私の場合は AMERICAN_AMERICA.ZHS16GBK
ここに画像の説明を挿入します

  PLSQLを再起動します

ここに画像の説明を挿入します
表示は正常です

Supongo que te gusta

Origin blog.csdn.net/slb190623/article/details/129867591
Recomendado
Clasificación