Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Lưu trữ các số 0 ở cuối trong cơ sở dữ liệu với JPA và Oracle

Bạn không thể giải quyết nó, và tôi khuyên nó không phải là một vấn đề. Đó chỉ là cách Oracle lưu trữ NUMBER giá trị:với độ chính xác thấp nhất cần thiết. Nếu bạn đã nhập giá là 4.00 nó sẽ được lưu trữ dưới dạng 4 .

Lưu ý rằng Java sẽ không mặc định là hai số thập phân khi hiển thị giá trị. Bạn cần chỉ định số vị trí thập phân.

Và, nếu có thể, tôi sẽ sử dụng BigDecimal thay vì float về cái giá. float loại không chính xác. Một giải pháp thay thế là sử dụng một trong các kiểu số nguyên (int hoặc long ) và tự quản lý các chữ số thập phân.

Để định dạng giá hiển thị trong mã Java của bạn, hãy sử dụng String.format("%.2f", price) .

Để định dạng giá trong truy vấn Oracle, hãy sử dụng TO_CHAR :

SELECT TO_CHAR(price, '999999990.00'), etc.

Chọn số lượng trình giữ chỗ phù hợp nhất với bạn và lưu ý rằng Oracle sẽ đặt thêm một khoảng trống ở đầu kết quả. Nó có nghĩa là giữ một dấu trừ nếu số âm, nhưng đối với số 0 / dương, nó là một khoảng trắng. Để loại bỏ dung lượng, hãy sử dụng FM sửa đổi trong TO_CHAR :

SELECT TO_CHAR(price, 'FM999999990.00'), etc.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi khi chuyển đổi XML từ cột CLOB sang cột XMLType

  2. Làm thế nào để viết / cập nhật Oracle blob một cách đáng tin cậy?

  3. thủ tục lưu trữ pl / sql:tên tham số giống như tên cột

  4. Oracle TNS:tên dịch vụ net không được chỉ định chính xác

  5. Tham gia bên trong hai bảng, tổng hợp các trường varchar