2

我有一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什么?

4

1 回答 1

3

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

您提供的 NLS_NUMERIC_CHARACTERS 优先,所以您说数字将用逗号作为小数分隔符和逗号作为千位分隔符表示。

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

于 2013-09-12T14:05:10.023 回答