Oracle转换会导致错误

时间:2017-07-30 15:51:31

标签: sql oracle ora-01481

有人能解释这个SQL有什么问题吗?

SELECT TO_CHAR(1890.55,'$9,99D9V99') FROM DUAL;

它会抛出错误:

  

ORA-01481:无效的数字格式模型
  01481. 00000 - “无效的数字格式模型
  原因:用户试图通过TO_CHAR将数字转换为字符串,或者通过TO_NUMBER将字符串转换为数字,并提供无效的数字格式模型参数。
  行动:查阅您的手册。

2 个答案:

答案 0 :(得分:1)

您的格式字符串没有为您提供的数字指定十进制说明符(D)左侧的足够数字。此外,您不能将,D格式字符混合在同一格式字符串中,您不能拥有{{1>}个V格式字符格式字符串中的1}}或D.。你可以使用

$9,999.99

$9G999D99

$9,999V99

虽然最后一个显然不会显示小数点。

祝你好运。

答案 1 :(得分:0)

使用此功能;

select to_char(1890.55,'fm$999G990D00','NLS_NUMERIC_CHARACTERS = ''.,''') from dual