NLS_NUMERIC_CHARACTERS出现Oracle无效编号错误

时间:2013-09-12 13:59:21

标签: sql oracle oracle11g oracle11gr2

我有一个varchar2列,我需要将其转换为number

格式如下:

+000000000000030203.38

数据库级别:NLS_NUMERIC_CHARACTERS =。,

会话级别:NLS_NUMERIC_CHARACTERS = ,.

我试过了:

select to_number('+000000000000030203.38','S999999999999999999D99', 'NLS_NUMERIC_CHARACTERS='',.''') from MYTAB t

但它会引发invalid number错误。

此处to_number功能的正确参数是什么?

1 个答案:

答案 0 :(得分:3)

NLS_NUMERIC_CHARACTERS的第一个元素是小数点分隔符,第二个是千位分隔符。

您提供的NLS_NUMERIC_CHARACTERS优先,因此您说数字将以逗号表示为小数点分隔符,逗号表示为千位分隔符。

请改用'NLS_NUMERIC_CHARACTERS =''。,'''。