1.1 Background
NLS_LENGTH_SEMANTICS parameter allows you to specify the length of a column datatype/PLSQL variable in terms of characters (CHAR) instead of the default BYTE. Typically, you would need this if you were to deal with (in PL/SQL code) and store data that contains multibyte characters such as Japanese or Mandarin characters.
Oracle strongly recommends that you do not set NLS_LENGTH_SEMANTICS parameter on instance level (i.e. in the server parameter file) but only use it to alter session-level semantics as necessary. From MOS note 144808.1:
“Oracle advices to use explicit CHAR semantics in the SQL or PL/SQL syntax OR To make sure your application does an "ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR;" when connecting if CHAR semantics is required but the semantic is not defined explicit in SQL.”
Note:
SR with oracle mentioned below is feasible. (SR 3-16364463401)Parent topic: Length Semantic Setup