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.