NVARCHAR2データ型は、データベースの残りの部分(VARCHAR2を使用)に別の文字セットを保持しながら、一部の列にUnicodeを使用するデータベース用にOracleによって導入されました。 NVARCHAR2はUnicodeのみのデータ型です。
NVARCHAR2を使用する理由の1つは、DBが非Unicode文字セットを使用しているにもかかわらず、プライマリ文字セットを変更せずに一部の列のUnicodeデータを格納できるようにしたい場合です。もう1つの理由は、2つのUnicode文字セット(たとえば、主に西ヨーロッパからのデータにはAL32UTF8、主にアジアからのデータにはAL16UTF16)を使用することです。これは、異なる文字セットでは同じデータが同じように効率的に格納されないためです。
例の両方の列(Unicode VARCHAR2(10 CHAR)
およびNVARCHAR2(10)
)同じデータを保存できますが、バイトストレージは異なります。一部の文字列は、どちらか一方に効率的に保存される場合があります。
一部の機能はNVARCHAR2では機能しないことにも注意してください。このSOの質問を参照してください:
- OracleTextはNVARCHAR2では機能しません。他に何が利用できない可能性がありますか?