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

OracleでのNLS_CHARACTERSETWE8ISO8859P1およびUTF8の問題

    http://docs.oracle.com/cd /B19306_01/server.102/b14225/ch2charset.htm#g1009784

    一方、UTF-8はシンボルを格納するために数バイトを使用します。

    データベースがWE8ISO8859P1を使用し、列タイプがVARCHARグループ(NVARCHARではない)からのものであり、コードが255を超えるシンボルを挿入する場合、このシンボルはWE8ISO8859P1に変換され、一部の情報が失われます。

    簡単に言うと、UTF-8を1バイト文字セットのデータベースに挿入すると、データが失われます。

    上記のリンクは、この問題に取り組む方法のさまざまなシナリオを説明しています。

    Oracle asciistrを試すこともできます / unistr 機能しますが、一般的にはそのような問題に対処するための良い方法ではありません。




    1. 一意でないインデックスを一意のインデックスに変更する

    2. Postgresを開始できません

    3. トリガーに存在しない場合

    4. Oracleで親(任意のレベル)の最も子のノードを検索します