Oracle數據庫字段保留3位小數,程序讀出來顯示4位小數


需求

  項目需求從字段2位小數改成3位小數,這事兒好辦,數據庫噼里啪啦敲了一行代碼,發現居然報錯,原因是不能直接修改字段精度問題,然后使用了冒泡排序,搞定

--新增臨時字段
alter table Real_Proj_Section add WEIGHT2 number(10,3);
--將原字段內容拷貝至新字段
UPDATE Real_Proj_Section SET WEIGHT2=WEIGHT
--刪除原先字段
alter table Real_Proj_Section drop column WEIGHT
--新增原先字段
alter table Real_Proj_Section add WEIGHT number(10,3);
--給原先字段加備注
comment on column  Real_Proj_Section.Weight is '分段重量'
--將臨時字段內容拷貝至原先字段
UPDATE Real_Proj_Section SET WEIGHT=WEIGHT2
--刪除臨時字段
alter table Real_Proj_Section drop column WEIGHT2

遇到問題

  可以是到前台顯示就出現問題了,數據庫中明明保留的是3位小數前台顯示的時候,會顯示4位小數后面多一個“0”

數據庫字段,顯示也是3位小數

問題思考與解決

  剛開始以為程序的問題調試過程中,發現返回DataTable中,這個值就多個“0”,感覺應該是精度丟失問題,然后百度查,發現之前有人也碰到過此問題一直沒人解決(也沒人回答,帖子沒結),能試過的方法都試過了,后來沒轍了,都打算放棄治療了。晚上睡上一覺,第二天醒來后,腦海中冒出一個新想法,將字段轉字符串試試看唄,死馬當活馬醫,后台sql改為前面加TO_CHAR

SELECT TO_CHAR(WEIGHT) WEIGHT FROM Real_Proj_Section WHERE SPS_ID=    272262

搞定~

  人生還是得經得起折騰,O(∩_∩)O哈哈~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM