Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Validasi tanggal di Oracle tanpa menggunakan fungsi

Anda dapat menguji format menggunakan ekspresi reguler.

Itu akan menjadi seperti:

select dates
from tbl
where regexp_like(dates, '[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2}')

Ini bekerja dengan baik. Ini memeriksa apakah formatnya dalam "nomor 4 digit / 2 digit nomor / 2 digit nomor". Anda mungkin menginginkan sesuatu yang lebih kuat, seperti:

select dates
from tbl
where regexp_like(dates, '[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2}') or
      (substr(dates, 1, 4) not between '1900' and '2014' or
       substr(dates, 6, 2) not between '01' and '12' 
       substr(dates, 9, 2) not between '01' and '31'
      )

Ini memeriksa format dan nilai wajar di setiap kolom. Tentu saja, ini tidak memeriksa tanggal 31 Juni, tetapi akan menemukan banyak kesalahan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masalah Pemicu PL/SQL

  2. Buat ulang tabel Oracle DUAL

  3. ORA-01722:nomor tidak valid pada Entity Framework

  4. Periksa kata sandi pengguna valid atau tidak di plsql

  5. Urutan Oracle dimulai dengan 2, bukan 1