需求
項目需求從字段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哈哈~