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

Gặp sự cố lạ với hàm TO_NUMBER trong Oracle

Đây không phải là thực hành tốt. Dữ liệu số phải được giữ trong NUMBER cột. Lý do rất đơn giản:nếu chúng ta không thực thi kiểu dữ liệu mạnh, chúng ta có thể thấy mình có dữ liệu không phải số trong cột varchar2 của chúng ta. Nếu điều đó xảy ra thì một bộ lọc như thế này

where to_number(field1) = 23 

sẽ không thành công với ORA-01722: invalid number .

Tôi không thể chắc chắn rằng đây là những gì đang xảy ra trong trường hợp của bạn, bởi vì tôi không hiểu tại sao những thay đổi rõ ràng không đáng kể trong bộ lọc của ID đã thay đổi thành công của truy vấn. Sẽ rất hữu ích khi xem các kế hoạch thực thi cho các phiên bản khác nhau của truy vấn. Nhưng tôi nghĩ rằng nó có nhiều khả năng là vấn đề với dữ liệu của bạn hơn là lỗi trong SGA.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PL / SQL gán kết quả truy vấn cho CLOB

  2. Biến trong SQL -> ERROR PLS-00103:Gặp phải biểu tượng SELECT

  3. Ước tính thời gian tạo chỉ mục trong oracle

  4. Oracle nhận được tất cả các ngày trong một tháng

  5. SQL Thứ tự theo chuỗi, các số xuất hiện sau cùng