Although both Varchar2 and Nvarchar are data types supported in database programming languages, programmers use the Varchar2 to specify any variable-length character string and use Nvarchar to specify a Unicode-only variable-length character string. The data types also differ slightly in their function syntax and the space occupied by each character.
When creating tables the programmer needs to specify the data type for each of the column. Each of the column value has a data type that consists of a defined storage format, constraints, and a valid range of values.
The Varchar2 symbolizing character varying data type specifies a character string. Whenever using the Varchar2 data type the programmer needs to specify the number of bytes or characters of data that it can contain. The syntax for this function is VARCHAR2 (size [BYTE | CHAR]). The Varchar2 data type occupies one byte of space for each character.
The Nvarchar2 symbolizing national character varying data type is a Unicode data type that stores Unicode character data only. The data types can be either AL16UTF16 or UTF8 and the programmer needs to specify it explicitly when the database is being created as the national character set. The syntax for this function is NVARCHAR2 (size). The Nvarchar2 data type occupies two bytes of space for each character.