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

Làm thế nào để chỉ định dạng những bản ghi mà ORA-01843 không được ném?

Sử dụng CASE biểu thức kiểm tra trạng thái của cột và chỉ cố gắng phân tích cú pháp có điều kiện như một ngày hợp lệ:

SELECT
    MyColumn,
    CASE WHEN REGEXP_LIKE(MyColumn, '^\s*\d\d\d\d\d\d\s*$')
         THEN TO_CHAR(TO_DATE(TRIM(MyColumn), 'YYMMDD'), 'MM/DD/YYYY')
         ELSE MyColumn END AS new_col
FROM MyTable

Nhưng như một nhận xét chung, bạn nên tránh lưu trữ thông tin ngày tháng trong bảng của mình dưới dạng văn bản. Bây giờ bạn đang thấy một trong những lý do để tránh điều này.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. truy vấn để bỏ qua các bản ghi trùng lặp / null

  2. Làm thế nào để tải tập lệnh bảng trong Oracle SQL Developer?

  3. Số lượng và tham gia tự nhiên của Oracle (1)

  4. LISTAGG phân biệt nằm trong một truy vấn con trong danh sách CHỌN

  5. Hàm REPLACE () của Oracle không xử lý ký tự xuống dòng &nguồn cấp dữ liệu dòng