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

Bắt lỗi - ORA-01858:một ký tự không phải số được tìm thấy ở vị trí số được mong đợi

Lỗi bạn gặp phải là do bạn đang làm TO_DATE trên cột đã là ngày và bạn đang sử dụng mặt nạ định dạng khác với nls_date_format của mình tham số [1] hoặc vì cột sự kiện_tình huống chứa dữ liệu không phải là số.

Bạn cần phải a) sửa truy vấn của mình để nó không sử dụng TO_DATE trên cột ngày và b) sửa dữ liệu của bạn, nếu event_occression được cho là chỉ là các số.

Và sửa kiểu dữ liệu của cột đó để đảm bảo rằng bạn chỉ có thể lưu trữ số.



[1] Oracle làm gì khi bạn làm:TO_DATE(date_column, non_default_format_mask) là:TO_DATE(TO_CHAR(date_column, nls_date_format), non_default_format_mask)

Nói chung, nls_date_format mặc định tham số được đặt thành dd-MON-yy , vì vậy trong truy vấn của bạn, điều có thể xảy ra là cột ngày của bạn được chuyển đổi thành một chuỗi ở định dạng dd-MON-yy và sau đó bạn chuyển nó trở lại ngày bằng định dạng MMDD. Chuỗi không ở định dạng này, vì vậy bạn gặp lỗi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. oracle SQL cộng với cách kết thúc lệnh trong tệp SQL?

  2. Cách đổi tên cột bảng trong Oracle 10g

  3. Sự khác biệt giữa oracle DATE và TIMESTAMP

  4. Cloud Native và DevSecOps ở quy mô lớn với Nền tảng đổi mới nhanh nhẹn Capgemini và Đám mây Oracle

  5. Không phải là tháng hợp lệ trên một câu lệnh INSERT