sql >> データベース >  >> RDS >> Oracle

Oracle DBにペルシア文字を挿入すると、疑問符が表示されます

    サーバー上で実行していると言うときは、SQL * Plusを使用しているということですか?

    最初に確認するのは、実際に保存されている文字です。これを確認するには、DUMP関数を使用します。

    Oracleダンプ関数

    これにより、実際に何が保存されているかがわかります。クライアントアプリとOracleサーバー間のチェーンが適切でない場合、文字セット変換が発生する可能性があります。

    正しい文字が保存されていると仮定すると、サーバー/sqlplusに表示されるのは文字変換です。つまりOracleは文字を正しく「提供」していますが、ディスプレイは期待どおりに文字を処理していません。これを修正するには、NLS_LANG環境変数を正しい文字セットに設定する必要があります。

    例:最近のプロジェクトでは、デフォルト:

    set NLS_LANG=AMERICAN_AMERICA.US7ASCII
    

    次に、与えられたデータをクエリします:

    NAME
    -----------------------------------
    MS ELLIE MARTALL
    

    しかし:

    set NLS_LANG=AMERICAN_AMERICA.US8PC437
    

    次に、クエリを実行すると、次のようになります。

    NAME
    -----------------------------------
    MS ÉLLIE MARTALL
    

    また:

    set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15
    

    与えた:

    NAME
    -----------------------------------
    MS ╔LLIE MARTALL
    

    ここで重要なのは、実際のデータは同じであり、データがディスプレイに表示される方法が異なることです。その動作はNLS_LANGによって制御できます。



    1. OracleSQLでの日付の平均化

    2. 代わりのトリガーの主張–パート1

    3. java.lang.IllegalArgumentExceptionが発生するのはなぜですか。この場合、インデックス1のバインド値はnullです。

    4. C#アプリケーションでSQL Serverデータベースのすべてのテーブルの名前を取得できますか?