有人能解释这个SQL有什么问题吗?
SELECT TO_CHAR(1890.55,'$9,99D9V99') FROM DUAL;
它会抛出错误:
ORA-01481:无效的数字格式模型
01481. 00000 - “无效的数字格式模型
原因:用户试图通过TO_CHAR将数字转换为字符串,或者通过TO_NUMBER将字符串转换为数字,并提供无效的数字格式模型参数。
行动:查阅您的手册。
答案 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