日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle中较长number型数值的科学计数显示问题

發布時間:2025/3/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle中较长number型数值的科学计数显示问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫版本:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
SQL> create table t(id number(20));
Table created.
SQL> insert into t(id) values(12345678901234567890);
1 row created.
SQL> insert into t(id) values(1234567890);
1 row created.
SQL> select * from t;
??????? ID
----------
1.2346E+19
1234567890
可以看到在SQL*Plus下,小于等于10位的精度顯示的是很直觀的形式,大于10位精度的則顯示為科學計數的形式。
SQL> select * from t where id=12345678901234567890;
??????? ID
----------
1.2346E+19
SQL> select * from t where id=1234567890;
??????? ID
----------
1234567890
數據都可以正確檢索,說明數值的存儲沒有任何問題,應該只是顯示的問題了。
SQL> show numwidth
numwidth 10
這就是為什么小于等于10位不會被顯示為科學計數形式的原因了,知道原因了,我們把其設置改長一點:
SQL> set numwidth 20
SQL> select * from t;
????????????????? ID
--------------------
12345678901234567890
????????? 1234567890
已經可以完全顯示所有的位數了。
在不改變numwidth設置的情況下,可以使用to_char函數完全顯示所有位數:
SQL> set numwidth 10
SQL> select to_char(id) from t where id=12345678901234567890;
TO_CHAR(ID)
----------------------------------------
12345678901234567890

此外對于一些Oracle根據,如Toad和PL/SQL Developer也會存在這樣的顯示問題,默認情況下這兩個工具的numwidth設置都是15,也給我們帶來了一些不變,可以通過以下方法:
在toad中->view->option->data->display large number in scientific notation,不選擇該選項即可
在pl/sql developer中->tools->preferences->sql windows->number fields tochar,選中該選項即可。

本文出自 “秀才” 博客,請務必保留此出處http://cau99.blog.51cto.com/1855224/362721

總結

以上是生活随笔為你收集整理的Oracle中较长number型数值的科学计数显示问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。