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を再起動します
表示は正常です