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

OracleはデフォルトのNLS_LANGを設定しました

    これはおそらく起こることです:

    • クライアントの文字セットはCP1252またはISO-8859-15のようなものである必要がありますが、実際にはクライアントは実際にUTF8を使用しています。
    • この文字セット(UTF8)では、記号á 2バイトかかるため、クライアントはこれらの2バイトを送信し、OracleにこれらをCP1252として扱うように指示します。 CP1252では、2文字の2バイトコードにより、DBは入力を2文字として解釈するため、length('à') 2に等しい(そしてこの文字列を挿入した場合、挿入の結果はàに等しくなりません )
    • 文字セットを正しく設定すると、入力はoracleによって1文字として正しく扱われ、その長さは1(2バイトのまま)です。

    結論:クライアントの文字セットを適切に設定しないと、翻訳エラーが発生します(この方法では不正な文字は取得されませんが、奇妙な記号が表示される可能性があります(¿

    データベースの文字セットは作成時に設定され、通常はエクスポート/空のデータベースの作成/インポートによって変更されます。



    1. Oracle SQL Developerでクエリ実行時間を見つける方法は?

    2. MySqlテーブルから選択オプションを設定するためのjqueryajax呼び出し

    3. MySQLのいくつかの列とrand()による並べ替え

    4. C# で SQL 定義関数を呼び出す