sqlplus を使用して SQL を実行すると、Oracle の中国語文字が文字化けするか、引用符で囲まれた文字列が適切に終了しないことが発生します。

文字化けの対処法はインターネット上にたくさんありますが、詳しく説明されておらず、修正しても解決できない場合もあります。

まず文字化けの原因は、接続端末、Oracleサーバー、サーバー環境変数のエンコード設定が関係しています。

1. まず、ユーザー変数で環境変数を構成する必要があります: ~/.bash_profile 

2. select userenv(' language') from Dual; を使用して、Oracle エンコーディングを表示します。

   たとえば、次のようになります: AMERICAN_AMERICA.ZHS16GBK

3.vim ~/.bash_profile 環境変数を設定します。export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK、

   その後、ソース ~/.bash_profile が有効になります

4. エンコードが GBK であることを確認したら、接続している端末のエンコードを変更します。たとえば、xshell を GBK に変更します。

5. sqlplus を開き、ddl または dml ステートメント (できれば ddl のフィールド コメント ステートメント) を実行して、引用符で囲まれた文字列が適切に終了していないかどうかを確認します。

   例: 列 user.user_no のコメントは「ユーザー番号」です。

6. 表示されない場合は成功しており、sqlplus を使用して SQL スクリプト ファイルを実行し、成功したかどうかを確認します。SQL スクリプト ファイルのエンコードも GBK である必要があります。

  すべては Oracle サーバーのエンコーディングの影響を受けます。

7. 手順 6 で問題が発生した場合は、最初の 5 つの部分が正しいかどうかを確認するか、LANG エンコードを GBK に変更してみてください。

おすすめ

転載: blog.csdn.net/Qensq/article/details/107410085