我有一个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
功能的正确参数是什么?
答案 0 :(得分:3)
NLS_NUMERIC_CHARACTERS的第一个元素是小数点分隔符,第二个是千位分隔符。
您提供的NLS_NUMERIC_CHARACTERS优先,因此您说数字将以逗号表示为小数点分隔符,逗号表示为千位分隔符。
请改用'NLS_NUMERIC_CHARACTERS =''。,'''。