如下圖,是員工薪資管理模塊中的一個員工薪資表。這個表在外行人眼里看起來已經比較完美了。但是,其仍然有不少可以完善的地方。
一、 在貨幣前面加入本地貨幣符號。
貨幣字段在系統中,是一個比較復雜的字段。特別是在一些涉及到多貨幣的管理系統中,有時候兩個字段數字雖然相同,但是,其實際表示的金額卻不一致。因為兩者對應的貨幣符號不同。所以,有時候,我們希望在貨幣字段之前,顯示本地的貨幣符號。這可以讓用戶直觀的了解,這個是以本位幣表示的貨幣金額。
如上圖,我們希望在貨幣之前能夠顯示貨幣符號。這比上面那個結果,顯然可讀性更好。其實,要實現這個目的,也是很簡單的。在Oracle數據庫中,提供了Format命令,可以格式化查詢結果。如要實現上面的結果,則可以利用這個命令來完成。
COLUMN HEADING FORMAT L9999.99;
Column是Oracle數據庫提供的一個命令。結合Format參數,可以用來格式化查詢結果。在L9999.99,這個參數中,L表示在數值型字段前顯示本地貨幣符號。這里的本地貨幣符號是指在Oracle數據庫環境中設置的本地貨幣符號,而跟前臺應用程序無關。在前臺程序開發的時候,要注意跟Oracle數據庫同步。如用戶在前臺應用軟件中,設置的本位幣是人民幣的話,則前臺程序要能夠重新設置Oracle數據庫的本地貨幣。如此的話,利用L參數才可以顯示正確的結果。
參數9表示在數值型字段上禁止顯示前導0。此外,他還有一個額外的功能,就是表示精度。如上面的例子中,小數點后面加入兩個9,就表示保留兩位小數。即使沒有小數的話,也要用0來補充。這也是我們在格式化查詢結果的時候,常用的一個手段。
不過在利用9來限制數字精度時,要注意一個問題,就是其位數一定要夠。如果某個字段,其實際值為350000,而我們提供的參數為L9999.99的話。則最后將無法顯示正確的結果。如可能會利用######來代替最終的結果。這是在數據庫設計的時候,需要注意的問題。
二、跟Format有關的其他格式控制。
Format還提供了其他一些有用的參數。
如$參數。若把COLUMN HEADING FORMAT L9999.99這個命令稍微改一下。該為COLUMN HEADING FORMAT $9999.99這個的話,那么會有什么結果?此時,無論Oracle數據庫的本地貨幣符號是什么,在現實的結果中,都是以$開頭的貨幣。也就是說,這個參數的含義就是在數值型字段前面顯示美元符號。這跟Oracle數據庫的環境變量無關。
如上圖中,在Oracle數據庫中,對于數字型的數據類型,默認情況下其不會用千位分隔符進行區分。而在軟件設計中,特別是財務部門的管理軟件,往往需要利用千位分隔符來進行劃分。如此,用戶讀起來會更加的方便。為此,在Oracle數據庫中,提供了一個“,”參數(注意是英文狀態下的逗號)。這個參數指定在數字型的數據中加入千位分隔符。