“select to_number(0.25,'9.00') a from dual;结果是0.25,如果格式改成0.99,则报错。”这个结果怎么算出来的?为什么0.99就会报错呢?不用怀疑结果,我已经在实际环境中运行过了,结果的确是这样的。
to_number的正确格式是:To_number(char,’format’)。其中 char代表一个数值字符串,format代表char的格式。语句 select to_number(0.25,'9.00') a from dual;中的0.25正确写法是'0.25',带有单引号。后边的格式'9.00'代表0.25的数值格式。9代表整数位数,0代表小数位数。如果写成0.99正好把格式倒过来了。当然会出错了。