Oracle只是在語法上支持decimal類型,但是在底層實際上它就是number類型,支持decimal類型是為了能把數據從Oracle數據庫移到其他數據庫中(如DB2等)。
因為decimal在Oracle底層就是number類型,所以就當number類型使用就可以了,如果需要對這種字段類型轉為char類型可以用to_char函數對其轉換。
decimal類型從根本上說應該是數字類型的,因為oracle內部的數據類型,對於數字只有number類型,都當數字類型進行處理即可。decimal(8,2)代表數字總共8位長度,小數部分是2位。范圍是8位,精確到小數點后2位,並四舍五入,即存6位整數,兩位小數。也就是最大值可以是999999.99,可存放2位小數。Oracle中,可以使用to_char函數對數字進行轉換,使它變成字符類型.
select cast('111.11' as number(8,2)) from dual;
select cast('111.11' as decimal(8,2)) from dual;
cast 是進行類型轉換的, 可以針對各種Oracle數據類型. 修改的是用戶的數據類型.
number只是修改的數據顯示格式. 對數據做四舍五入. 類似的函數還有ceil(取此數據的最小整數). trunc( 取整函數.)