UNICODE Character Data Types in Oracle

Unicode characters stands for multi byte data 1:1, 1:2 or 1:4, NCHAR and NVARCHAR2 are Unicode data types that store Unicode character data. The character set of NCHAR and NVARCHAR2 data types can only be either AL16UTF16 or UTF8 and is specified when the database is created as the national character set. Note that both AL16UTF16 and UTF8 are Unicode encoding.

The NCHAR data type stores fixed-length character strings that correspond to the national character set.

The NVARCHAR2 data type stores variable length character strings.

When you create a table with an NCHAR or NVARCHAR2 column, the maximum size specified is always in character length semantics. Character length semantics is the default (and only) length semantics for NCHAR or NVARCHAR2.

For example, if national character set is UTF8, then the following statement defines the maximum byte length of 90 bytes (not 30):

CREATE TABLE table1 (col1 NCHAR(30));

This statement creates a column with maximum character length of 30. The maximum byte length, however, is the multiple of the maximum character length and the maximum number of bytes for each character.

NCHAR

The maximum length of an NCHAR column is 2000 bytes (2000 characters). The actual data is subject to the maximum byte limit of 2000. The two size constraints must be satisfied simultaneously at run time.

Fixed-length character data of length size characters
Maximum size is determined by the national character set definition, with an upper limit of 2000 bytes.
Default and minimum size is 1 character.

NVARCHAR2

The maximum length of an NVARCHAR2 column is 4000 bytes (4000 characters). The actual data is subject to the maximum byte limit of 4000. Like NCHAR, the two size constraints must be satisfied simultaneously at run time.

Variable-length character string having maximum length size characters.
Maximum size is determined by the national character set definition, with an upper limit of 4000 bytes.
You must specify size for NVARCHAR2.