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

Cara memvalidasi tanggal YYYYMMDD yang diberikan sebagai parameter PL/SQL

convert(varchar(10), pdate(), 111) tampaknya merupakan upaya untuk menggunakan SQL Server convert fungsi. Itu tidak akan berhasil di Oracle.

Saya hanya akan melakukan sesuatu seperti

DECLARE
  l_dt date;
BEGIN
  l_dt := to_date( pdate, 'yyyymmdd' );
EXCEPTION
  WHEN others
  THEN
    raise_application_error( -20001, pdate || ' is not a date in the format YYYYMMDD' );
END;

Tentu saja, jika Anda ingin melakukan beberapa pemeriksaan sehingga Anda dapat memberikan pengecualian yang berbeda jika panjangnya salah atau menambahkan beberapa pemeriksaan untuk memastikan bahwa tanggalnya masuk akal (yaitu harus dalam 100 tahun terakhir atau tidak lebih dari 100 tahun dalam masa depan, dll.) Anda dapat melakukannya setelah to_date konversi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kelas Entitas JPA memberikan kesalahan dengan 2 bidang @GeneratedValue

  2. ORA-00932:tipe data tidak konsisten:NUMBER yang diharapkan menjadi PANJANG

  3. Gunakan parameter yang sama beberapa kali dalam kondisi WHERE dari kueri SQL untuk digunakan di JDBC

  4. Hibernate tidak menghasilkan pengidentifikasi saat menggunakan urutan Oracle

  5. Status Risiko Analisis Tekanan Memori