當我將數值存儲在表中並在SQL Developer中查詢該表時,它不會顯示Number數據類型的尾隨零。Oracle是否爲Number數據類型存儲尾隨零?
create table decimal_test(decimal_field number(*,10));
insert into decimal_test(decimal_field) values(10);
insert into decimal_test(decimal_field) values(10.11);
insert into decimal_test(decimal_field) values(10.100);
insert into decimal_test(decimal_field) values(10.00);
select * from decimal_test;
,結果是
10
10.11
10.1
10
這些值從Java代碼處理。在這種情況下,我正在使用BigDecimal
來存儲該值。
在保存到DB之前,如果我有BigDecimal(10.00)
,保存之後,從DB返回的值爲BigDecimal(10)
。等於BigDecimal
中的方法失敗,因爲比例已更改。
而我的小數精度不是恆定的。用戶可以設置BigDecimal(10.00)或BigDecimal (10.000)
等。因此,值需要按照原樣存儲在DB中。
有什麼辦法在oracle中存儲尾隨零?
我使用SQL Developer工具來查詢數據進行測試。但是我們使用java oracle jdbc在實際場景中查詢結果。 – suren
我不認爲您可以告訴Oracle存儲尾隨零,但您應該能夠配置您的SQL客戶端(或您的應用程序)以便將輸出格式化爲期望的小數位數。 –
小數位數不是常數。用戶可以設置任意數量的小數位數。但是有一個最大限制。 – suren