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

Tránh chèn giá trị theo cấp số nhân trong cột DB Float

Nó không được lưu trữ dưới dạng hàm mũ, nó được lưu trữ trong biểu diễn số nội bộ của Oracle. Khi bạn truy vấn nó, nó được hiển thị với định dạng số hiện tại trong phiên của bạn:

select 0.0000000555559080767 from dual;

                  0.0000000555559080767
---------------------------------------
                                5.6E-08

Bạn có thể ghi đè cái nào trong SQL * Plus hoặc SQL Developer:

set numformat 999.9999999999999999999
select 0.0000000555559080767 from dual;

   0.0000000555559080767
------------------------
    .0000000555559080767

Hoặc định dạng rõ ràng giá trị dưới dạng chuỗi, chỉ để hiển thị:

set numf ""
select to_char(0.0000000555559080767, '9990.9999999999999999999') from dual;

TO_CHAR(0.000000055555908
-------------------------
    0.0000000555559080767

Nếu bạn có một ứng dụng khách đang truy xuất và sử dụng giá trị thì nó sẽ truy vấn nó dưới dạng một float, thành một kiểu dữ liệu phù hợp cho ngôn ngữ của ứng dụng khách, sau đó tùy thuộc vào ứng dụng khách mà nó được hiển thị như thế nào.

Bạn cũng không nên chèn một chuỗi vào cột float, điều đó chỉ thực hiện một chuyển đổi ngầm định; đối số cuối cùng trong phần chèn của bạn phải là 0.0000000555559080767 chứ không phải là '0.0000000555559080767' được trích dẫn .



  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àm thế nào để gán giá trị cho biến trong biểu thức cho một khối PL / SQL?

  2. Làm cách nào tôi có thể xác định một kiểu trong oracle11g tham chiếu đến một tập hợp kiểu đó?

  3. Oracle:Tôi cần một phần bên ngoài tham gia. Nhìn vào hình ảnh

  4. Làm thế nào để phân tích cú pháp chuỗi được phân cách bằng dấu phẩy trong PL / SQL?

  5. Cách lấy mục lớn thứ hai hoặc lớn thứ ba từ một bảng