我必须使用不同的NLS_NUMERIC_CHARACTERS
aka逗号分隔符在不同地区运行以数字小数作为参数的报告。
NLS_NUMERIC_CHARACTERS
在会话级别设置,例如 与
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ',.';
表达式NLS_NUMERIC_CHARACTERS = ',.'
表示小数点标记是逗号,千位标记是点。
为了使用户在所有不同区域中都能正确输入内容,我假设NLS_NUMERIC_CHARACTERS
正确设置了会话的设置。我想将该会话状态评估为一个字段值,s_nlsparam
并使用它正确地将报告参数转换为
.. to_number(expr,format, v_nlsparam) ...
到目前为止的计划。这将ORA-01722: invalid number
在多国环境中遏制任何潜力。
现在,我找不到一种方法来读取设置的当前会话状态NLS_NUMERIC_CHARACTERS
。我检查了该视图v$session
,但没有提供任何此类字段。我都没有使用以下方法找到这样的参数:
select sys_context('USERENV', .... ) from dual
有办法吗?
您可以使用以下选择查看该信息:
select value from nls_session_parameters where parameter = 'NLS_NUMERIC_CHARACTERS';