I have to run a report with numeric decimals as parameters in different territories with different NLS_NUMERIC_CHARACTERS, aka comma separators.
NLS_NUMERIC_CHARACTERS is set on the session level eg. with
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ',.';
Expression NLS_NUMERIC_CHARACTERS = ',.' means
the the decimal marker is a comma, and the thousands marker to a point.
To get the user input right in all the different territories I assume that the NLS_NUMERIC_CHARACTERS settings of the session is set correctly. I want to evaluate that session state into a field value s_nlsparam and use it to convert the report parameters correctly with
.. to_number(expr,format, v_nlsparam) ...
so far the plan. This would tame any potential ORA-01722: invalid number in the multi-national context.
Now I can't find a way to read the current session state of the NLS_NUMERIC_CHARACTERS settings. I checked the view v$session, but it doesn't offer any such field. Neither I found such a parameter using:
select sys_context('USERENV', .... ) from dual
Is there a way to get it?
You can see that info using this select: