e.g.
SQL>
CREATE TABLE exp_table
(
col1 CHAR (1 CHAR),
col2 CHAR (1 BYTE),
col3 CHAR (1)
)
-> col1 can store 4 byte at most (if db charset is AL32UTF8)
-> col1 can store 3 byte at most (if db charset is UTF8)
-> col3 stores string according to NLS_LENGTH_SEMANTICS parameter
SQL>
SELECT * FROM v$nls_parameters WHERE parameter = 'NLS_LENGTH_SEMANTICS';
Check db charset
SQL>
SELECT * FROM nls_database_parameters WHERE parameter like '%SET%';
-> NLS_CHARACTERSET set for CHAR, VARCHAR2 and CLOB data types
-> NLS_NCHAR_CHARACTERSET set for NCHAR, NVARCHAR2 and NCLOB (N, National) data types
e.g.
NLS_NCHAR_CHARACTERSET UTF8
NLS_CHARACTERSET WE8ISO8859P9
Ref: https://docs.oracle.com/cd/B19306_01/server.102/b14225/ch6unicode.htm