[20191104]sqlplus下显示数据精度2.txt
--//以前写的链接如下:
http://blog.itpub.net/267265/viewspace-2284458/=>[20181207]sqlplus下显示数据精度.txt
--//才发现自己分析有误,实际上sqlplus缺省最大显示宽度占10个字符,是这个问题导致一些精度被截取.
--//通过例子说明:
1.环境:
SCOTT@book> @ ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
2.测试:
SCOTT@book> show numwidth
numwidth 10
SCOTT@book> select sum(AMOUNT_SOLD),count(*) from sh.sales;
SUM(AMOUNT_SOLD) COUNT(*)
---------------- ----------
98205831.2 918843
--//98205831.2正好占用10个字符.实际以上sum精确结果是98205831.21,设置numwidth=11看看.
SCOTT@book> set numw 11
SCOTT@book> select sum(AMOUNT_SOLD),count(*) from sh.sales;
SUM(AMOUNT_SOLD) COUNT(*)
---------------- ------------
98205831.21 918843
SCOTT@book> select 0.0000000000000000000123456789012 from dual ;
0.0000000000000000000123456789012
---------------------------------
1.23457E-20
--//显示输出占11个字符
SCOTT@book> set numw 10
SCOTT@book> select 0.0000000000000000000123456789012 from dual ;
0.0000000000000000000123456789012
---------------------------------
1.2346E-20
--//这个问题是一些细节问题,工作中应该引起注意.在toad下只要在
--//Data Grids Display large numbers in Scientific Notation前面的勾不选上,基本没有问题,不受显示宽度限制.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2662467/ ,如需转载,请注明出处,否则将追究法律责任。