Laz*_*zer 4 oracle oracle-11g-r2
我正在寻找结果0123.56
,以下查询应该有效。
SQL> select to_number(123.56,'0999.99') from dual;
select to_number(123.56,'0999.99') from dual
*
ERROR at line 1:
ORA-01722: invalid number
SQL>
Run Code Online (Sandbox Code Playgroud)
但事实并非如此。我在这里做错了什么?
看起来您正在尝试将数字转换为数字 - 请尝试to_char
:
select to_char(123.56,'0999.99') from dual;
TO_CHAR(123.56,'0999.99')
-------------------------
0123.56
Run Code Online (Sandbox Code Playgroud)
请注意,相比之下,select to_number('0123.56','0999.99') from dual;
会成功,因为格式规范匹配,但不会0123.56
根据需要返回文本-'0999.99'
在这种情况下是输入格式,而不是输出格式 -123.56
将返回数字。