An application I'm using with Oracle seems to be having issues with characters, and I ran the queries below to check on the CHARACTERSET.
SELECT * FROM nls_session_parameters WHERE PARAMETER='NLS_CHARACTERSET';SELECT * FROM nls_database_parameters WHERE PARAMETER='NLS_CHARACTERSET';
The second query from nls_database_parameters returns AL32UTF8.
But the first query seems to return None.
I've read that the nls_session_parameters takes precedence over the nls_database_parameters, but in this case, where there does not seem to be any value set for it, would it fall back to the nls_database_parameters, or is there something that needs to be configured to set the nls_session_parameters.
Thank you for any input on this.
The
NLS_CHARACTERSETis the character set which is used by the database. Your session (i.e. the client) does not store anything, thusNLS_CHARACTERSETdoes not exist.I assume you are looking for
NLS_LANGwhich tells the database which character set is used by the client. You cannot queryNLS_LANGfrom any database view/table, you have to check settings in your client. You can setNLS_LANGonly at your client side, not at database side.Note, some clients (e.g. Java JDBC based clients) do not use
NLS_LANGsetting, they use a different globalization mechanism.