March 18, 2011 Leave a comment
If you’ve ever messed about with multibyte charactersets then you will probably have come across NLS_LENGTH_SEMANTICS – i.e the difference between a VARCHAR2(200 BYTE) and a VARCHAR2(200 CHAR) and, for example, that for a multibyte character string you might get as few as 50 characters in a VARCHAR(200 BYTE).
Note in this thread on the OTN Globalization Support Forum the advice of Oracle’s Sergiusz Wolicki that, contrary to the Oracle documentation (for which a documentation bug has been filed), it is in no way recommended to set NLS_LENGTH_SEMANTICS to CHAR in the parameter file.
This means that the recommended approach to to manually specifiy CHAR in column declarations when you want CHAR. Which makes sense.
And to use an ALTER SESSION command if those four extra characters (five with the space) seems like too much hard work.