読み方 : エヌバーチャー / エヌバーキャラ
NVARCHAR【NCHAR VARYING】NVARCHAR2
NVARCHARとは?

「VARCHAR」や「CHAR」といった従来の文字列型は、英数字を中心としたASCII文字を想定して設計されており、日本語や中国語、アラビア語といった様々な言語の文字を扱うには不十分な場合があった。NVARCHARでは世界中の言語の文字を一つの体系で表現できるUnicodeを使って文字を保存することができる。異なる言語の文字を同一の列に混在させても、文字化けや欠損を起こさずに記録、読み込みができる。
NVARCHARが実装された初期のDBMSではUnicodeのエンコード方式としてUTF-16を採用するものが多く、その場合は文字の種類によらず1文字あたり2バイトで表現される。半角英数字の格納に必要な保存領域は従来の2倍に増える点に注意が必要である。近年のDBMSでは設定によりUTF-8も選択できるようになっているものもあり、一文字あたりASCII文字は1バイト、欧州の飾り付き文字や記号などは2バイト、日本語などは3バイト、特殊な記号などは4バイトを消費する。
フィールドの長さ指定は文字数単位で行うのが一般的で、「NVARCHAR(100)」と定義すれば最大100文字まで格納できる。最大長をバイト単位で指定するVARCHARとはこの点が異なる。SQL Serverでは上限4000文字で、それを超える場合は「NVARCHAR(MAX)」を指定してLOB型としてデータを保存する。なお、Oracle Databaseでは歴史的な経緯から「NVARCHAR2」という型名が用いられている。