[20160828]number型別.txt
[20160828]number型別.txt
--昨天看了一個連結http://www.cnblogs.com/kerrycode/p/4427352.html,感覺有點不對,上班測試看看。
1.環境:
SCOTT@book> @ &r/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
create table tx ( a number,b number(38,2) ,c number(38));
insert into tx values (1/3,1/3,1/3);
commit ;
SCOTT@book> select * from tx;
A B C
---------- ---------- ----------
.333333333 .33 0
2.測試:
set serveroutput on
DECLARE
CURSOR c_test IS SELECT a,b,c FROM Tx;
c_row c_test%rowtype;
begin
for c_row in c_test loop
dbms_output.put_line('the result is a=' || c_row.a);
dbms_output.put_line('the result is b=' || c_row.b);
dbms_output.put_line('the result is c=' || c_row.c);
end loop;
end;
/
the result is a=.3333333333333333333333333333333333333333
the result is b=.33
the result is c=0
PL/SQL procedure successfully completed.
SCOTT@book> @ &r/desc tx
Name Null? Type
---- -------- ----------------------------
1 A NUMBER
2 B NUMBER(38,2)
3 C NUMBER(38)
--很明顯我並沒有測試出作者的情況,實際上定義number,並不意味者精度是0.估計作者使用pl/sql的原因。
SCOTT@book> select dump(a,10) c80 ,dump(b,10) c30 ,dump(c,10) c20 from tx;
C80 C30 C20
-------------------------------------------------------------------------------- ------------------------------ --------------------
Typ=2 Len=21: 192,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34 Typ=2 Len=2: 192,34 Typ=2 Len=1: 128
--你可以發現欄位a,長度是21,也就是在生產系統最好不要簡單的定義型別number,要加入整數部分長度的限制,避免一些運算導致字
--段佔用空間很大,最佳的方式準確的設定scale。
--另外我曾經在使用copy命令(sqlplus)時出現異常,可以參考連結:
http://blog.itpub.net/267265/viewspace-1257036/
--使用copy後丟失了小數點後面的資訊,資料型別number變成了number(38).
--總之最好不要簡單的定義型別是number,要寫成number(10) ,如果有精度需求加入number(10,3).
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2124132/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20150503]關於oracle的number型別.txtOracle型別
- ORACLE NUMBER資料型別Oracle資料型別
- 【NUMBER】Oracle的NUMBER資料型別特點Oracle資料型別
- Oracle的number資料型別Oracle資料型別
- 淺析number型別的值型別
- 征服number型別的input框型別
- Oracle中number型別詳解Oracle型別
- 測試NUMBER型別的效能型別
- number(p,s)型別詳解型別
- [20190930]oracle raw型別轉化number指令碼.txtOracle型別指令碼
- javascript型別系統——Number數字型別JavaScript型別
- [20190930]oracle number型別儲存轉化指令碼.txtOracle型別指令碼
- [20191013]oracle number型別儲存轉化指令碼.txtOracle型別指令碼
- JS -- number資料型別詳解JS資料型別
- ORACLE NUMBER型別內部實現Oracle型別
- number型別的顯示問題型別
- 一個簡單函式—Number型別轉換Date型別函式型別
- [20191003]oracle number型別儲存轉化指令碼.txtOracle型別指令碼
- jsp頁面number型別自動轉為String型別JS型別
- EF:oracle的number型別對映為C#的boolean型別Oracle型別C#Boolean
- [20191001]關於oracle number型別的一些疑惑.txtOracle型別
- JS中其他資料型別轉為number資料型別的方法JS資料型別
- 保留兩位小數:資料庫欄位型別NUMBER,Java欄位型別Double型別資料庫型別Java
- 10_深入解析Oracle number資料型別及os層number解析工具分享Oracle資料型別
- Python技術之Number資料型別介紹Python資料型別
- number資料型別在查詢中的顯示資料型別
- oracle集合型別使用的實驗.TXTOracle型別
- 【NUMBER】有關Oracle NUMBER型別定義中precision和scale的測試和總結Oracle型別
- 從0.1+0.2=0.30000000000000004再看JS中的Number型別JS型別
- JavaScript封裝方法,相容引數型別為Number和StringJavaScript封裝型別
- [20171203]關於raw型別.txt型別
- JavaScript之number型別的數值轉換成某某進位制JavaScript型別
- 自己挖的坑自己填--Mybatis mapper檔案if標籤中number型別及String型別的坑MyBatisAPP型別
- oracle集合型別的first、next、prior、last方法.TXTOracle型別AST
- 【轉載】JS Number型別數字位數及IEEE754標準JS型別
- Python3學習筆記1,基本資料型別-Number、strPython筆記資料型別
- oracle中dump函式及oracle NUMBER型別內部儲存機制Oracle函式型別
- Python - 基本資料型別_Number 數字、bool 布林、complex 複數Python資料型別