我正在尋找對應於Oracle SQL數據類型NUMERIC/DECIMAL的Java數據類型。什麼Java數據類型對應於Oracle SQL數據類型NUMERIC/DECIMAL並獲得PLSQL的等效Java代碼?
我從web和其他文檔中得到了推薦使用java.math.BigDecimal的相同內容。看到一個文件。
http://www.cis.upenn.edu/~bcpierce/courses/629/jdkdocs/guide/jdbc/getstart/mapping.doc.html
推薦的Java映射爲小數和數字類型是 java.math.BigDecimal中,一個Java類型也表示定點 數字絕對精確。 java.math.BigDecimal類型 提供了允許添加BigDecimal類型的數學運算, 與其他BigDecimal類型, 整數類型和浮點類型相減,相乘和除。
建議用於檢索DECIMAL和NUMERIC值的方法是 ResultSet.getBigDecimal。 JDBC還允許訪問這些SQL類型,如 簡單字符串或字符數組。因此,Java程序員可以使用 getString來接收DECIMAL或NUMERIC結果。然而,這使得DECIMAL或NUMERIC用於貨幣值 比較尷尬,這是因爲這意味着應用程序編寫者必須 在字符串上執行數學運算。也可以將這些SQL 類型檢索爲任何Java數字類型。
我的最終目標是將Oracle PLSQL邏輯轉換爲等效的java代碼。我試着用示例邏輯來解釋。
見下面的例子:
在Oracle:
DECLARE
inv_quantity_Balance DECIMAL(10,2);
BEGIN
WHEN (inv_quantity_Balance <= 1) THEN
inv_quantity_Balance := 2;
ELSE
inv_quantity_Balance := 3;
END;
的Java:
BigDecimal inv_quantity_Balance = null ;
if ((inv_quantity_Balance <= 1)) {
inv_quantity_Balance = 2 ;
}else {
inv_quantity_Balance = 3 ;
}
它顯示編譯錯誤:
The operator <= is undefined for the argument type(s) BigDecimal, int
Type mismatch: cannot convert from int to BigDecimal
這只是一個示例。 請幫我找到相同的Java等價物。我如何保持精度和比例等?
數學運算符(例如'+, - ,/,*':add,multiply等等)也是一樣的。醜陋,但BigDecimal的正確精度超過了其不精確性。 –