一、Oracle to_char()函數功能很強大但是在用它格式化數值型數據時應該請注意以下幾項。如果是小數如:0.23這樣的數據經過to_char後再
<strong onmouSEOver="isShowAds = true;isShowAds2 =
true;ads.Move(this,"http://rad.17luntan.com/
UploadImage/17/633111011619218750.gif","
%u89C1%u6240%u672A%u89C1%uFF01%u62A2%u8D2DLG
%u9510%u6BD4%u6DB2%u6676%uFF0C%u8D60%u65E0%u7EBF%u5927
%u793C%21","42887","顯示","%u663E%u793A%20","http%3A//
210.192.100.35/11779028996160http%3A//
www.lgemonitor.com.cn/mnt/index.Html%3F11779028996160",
event)" style="FONT-WEIGHT: normal; CURSOR: hand; COLOR:
#0000ff; TEXT-DECORATION: underline" onclick=
"Javascript:window.open
("http://s0.17luntan.com/ClickPortal/WebClick.ASPx?id=
42887&k=%u663E%u793A&siteid=
95d6d193-1fb9-4fc0-8708-b7ceb3276924&url=http%3A//
wisebo.bokee.com/vIEwdiary.15801227.Html&gourl=http%3A//
210.192.100.35/11779028996160http%3A//
www.lgemonitor.com.cn/mnt/
index.Html%3F11779028996160&parm=
C794E0A4A49DF5F353EA88008FD215212B465427A50DDCDB&
allIEdsiteid=148");" onmouSEOut="isShowAds =
false;isShowAds2 = false">
顯示會變為.23,如果你為了讓它顯示出原來的0.23的話就得用To_char(要格式化的數值,’0.999’)保留三個小數,並顯示但這裡就要注意了。他為你截取小數的時候是四捨五入了。所以如果是要求截掉小數而不四捨五入的話就應該自己寫個函數截下去後再規格化。以保證它不四捨五入。
二、Oracle To_char(1.9999,’FM90.0999’)這個函數規格化時90.0999的含義是有9的地方如果有數字就顯示如果沒有數字就不顯示,有0的地方在沒有數字的時候也會有0來占位.但這樣做也有一個很大的缺點,就是如果是整數時它也仍然會顯示”.”,不要小瞧這個點,一般來講頁面上要顯示的話這個點就是多余的.也給我們造成了不小的麻煩.還要自己再寫函數來把這個小點搞定.
三、對於日期型的Oracle倒時提供了一個好的處理方法,可以把日期做成數值型的.然後再To_char就能顯示出你所需要的類型了.
四、 在使用select into時一定要注意,這種方法你一定要確認肯定會有數據被查出時才能使用.如果查詢結果為空時會導致報錯.還有一種情況是查出來的數據是多條也會報錯.所以應該盡量便宜游標來做.會減少錯誤產生的機率.
五、還有注意一點rownum不支持排序,就是說你想用這個來控制行數的話就會發現他沒有按你指定的排序方式顯示.,這是一個很難辦的事.而且如果你用rownum=2這樣的語句來輸出第二行的話也是行不通的。
但是有一點是Oracle對null的判斷變態到極點.如果你說某個變量 aa=null它是判斷不出來的.盡管aa的確是空.即使在選擇條件裡也是判斷不出來的.不知道為什麼,只好用nvl()這個函數來判斷了.在條件之外可以用 aa is null 來判斷.
六補充一點.就是在寫存儲過程時要注意參數名不能與數據庫字段名相同.否則Oracle會把這個參數名看成是字段名的,即使你用表的別名區分也不行.所以起參數名的時候一定要注意這點了.
以上的相關內容就是對函數功Oracle to_char()函數功能強大但是在用它格式化數值型數據時應該請注意的介紹,望你有所收獲。