NLS_LENGTH_SEMANTICS parameter used in Oracle

Explain the NLS_LENGTH_SEMANTICS parameter in Oracle

NLS_LENGTH_SEMANTICS allows you to specify the length of a column datatype in terms of CHARacters rather than in terms of BYTEs. The default value is BYTE.

If the database character set uses a single-byte character encoding scheme used then the number of characters is the same as the number of bytes.
If the database character set uses a multibyte character encoding scheme then the number of bytes no longer equals the number of characters because a character can consist of one or more bytes.

Note:
use CHAR(10 CHAR) or VARCHAR2(10 CHAR) in the columns definition when creating tables or use CHAR(10 CHAR) or VARCHAR2(10 CHAR) in PL/SQL variable definition.
A VARCHAR2(10 CHAR) will always use CHAR semantics, no matter what setting is used in the session or instance.
NCHAR, NVARCHAR2, CLOB, and NCLOB columns are always character-based.

Change value at Session level:

ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR;

Note:

Oracle recommends NOT setting the NLS_LENGTH_SEMANTICS parameter to CHAR in the instance parameter file when possible.