Oracle SQL Plus中显示为#的数字数据类型

Oracle SQL Plus中显示为#的数字数据类型,oracle,sqlplus,Oracle,Sqlplus,数字数据类型显示为#,而不是SQL Plus中的数字 请参考之前问题的H_费率,它显示正确,我在互联网和stackoverflow上搜索过类似的问题或答案,但没有一个问题或答案相同 你能帮我把它改成显示数字而不是#吗 您的H_费率格式的数字可能小于数据的数字: select to_char(123,'99') from dual; --returns ### select to_char(12345,'99,999') from dual; -- returns 12,345 但要正确格式化

数字数据类型显示为#,而不是SQL Plus中的数字

请参考之前问题的H_费率,它显示正确,我在互联网和stackoverflow上搜索过类似的问题或答案,但没有一个问题或答案相同

你能帮我把它改成显示数字而不是#吗


您的
H_费率
格式的数字可能小于数据的数字:

select to_char(123,'99') from dual; --returns ###
select to_char(12345,'99,999') from dual; -- returns 12,345
但要正确格式化一些比数据更重要的事情:

select to_char(123,'99') from dual; --returns ###
select to_char(12345,'99,999') from dual; -- returns 12,345
oracle提供了各种格式设置,如果该值不适合列,则会显示

如果某个值无法放入该列,SQL*Plus将显示磅符号(#)而不是数字

如果它显示正常而现在不正常,我认为您可能设置了一个列格式,该列格式对于要显示的值来说太小,类似于
column h_rate format 9999999
。如果您有一个10位数的数字还不够,因为它需要一个字符来显示+/-符号


您可以通过清除所有列定义来检查是否存在这种情况。

列中的数字有多大-您能举个例子吗?您设置了数字格式吗?
showmformat
显示什么?你有没有为那根柱子设置一个不合适的垫子?如果清除列,显示是否恢复正常?