TO_NUMBER - 返回$

时间:2014-01-10 10:53:58

标签: sql oracle number-formatting

我无法理解为什么以下查询会返回给定的结果。

查询1:

SELECT TO_NUMBER('$1,000.95', '$999,999.999')
FROM dual;

返回1000.95

为什么此查询不会返回$1000.95$1,000.95TO_NUMBER函数是否会删除所有格式(.除外)?

查询2:

SELECT TO_NUMBER('1,000.95', '$999,999.999')
FROM dual;

返回ORA-01722: invalid number

我想我理解这个 little 更好 - 格式掩码与数字格式不匹配。有没有办法在数字中返回$(使用CONCAT||除外)?

2 个答案:

答案 0 :(得分:3)

函数TO_NUMBER返回一个数字,$字符是ASCII,永远不会在数字字段中表示。要添加$字符,您需要将该数字表示为字符串。

答案 1 :(得分:-1)

 SELECT TO_NUMBER('$1,000.95', 'L999G999D999') FROM dual;