程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> PL/SQL number型數據

PL/SQL number型數據

編輯:關於Oracle數據庫

number(<p>,<s>)

精度p取值范圍1~38
有效位s取值范圍-84~127

最高整數位數=p-s

s正數,小數點右邊指定位置開始四捨五入
s負數,小數點左邊指定位置開始四捨五入
s是0或者未指定,四捨五入到最近整數
當p小於s時候,表示數字是絕對值小於1的數字,且從小數點右邊開始的前s-p 位必須是0,保留s位小數。


--num_test start------------------------------------------------

Connected to Oracle9i Enterprise Edition Release 9.0.1.1.1
Connected as aspire

SQL>
SQL> SET linesize 1000;
SQL> CREATE TABLE hjm_num_test
2 (a NUMBER,
3 b NUMBER(5,2),
4 c NUMBER(5,-2),
5 d NUMBER(5,0),
6 e NUMBER(5),
7 f NUMBER(2,5));

Table created

SQL> INSERT INTO hjm_num_test
2 (a,b,c,d,e,f) VALUES(123.3333,123.3333,123.3333,123.3333,123.3333,-0.0003);

1 row inserted

SQL> INSERT INTO hjm_num_test
2 (a,b,c,d,e,f) VALUES(197.9333,197.9333,197.9333,197.9333,197.9333,0.00012567);

1 row inserted

SQL> COMMIT;

Commit complete

SQL> SELECT * FROM hjm_num_test;

A B C D E F 1 123.3333 123.33 100 123 123 -0.00030 2 197.9333 197.93 200 198 198 0.00013

(在pl/sql dev sql窗口顯示)

--num_test end--------------------------------------------------------

似乎結果很正確,可是現在出來一個問題,當我不在pl/sql dev窗口運行,我在isqlplus中運行,結果就有點不一樣了,注意,第1行的F列:

A B C D E F 123.3333 123.33 100 123 123 -.0003 197.9333 197.93 200 198 198 .00013

(在isqlplus中顯示)

它捨去了末尾的0!在sqlplus下測試也是同樣的效果。

不過本人的意向應該是還是保留那個0的,因為number(2,5)它畢竟指定了有效位是5位。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved