convert(varchar(10), pdate(), 111)
dường như là một nỗ lực sử dụng convert
của SQL Server hàm số. Điều đó sẽ không hoạt động trong Oracle.
Tôi chỉ muốn làm một cái gì đó giống như
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;
Tất nhiên, nếu bạn muốn thực hiện nhiều lần kiểm tra để bạn có thể đưa ra một ngoại lệ khác nếu độ dài không chính xác hoặc thêm một số kiểm tra để đảm bảo rằng ngày là hợp lý (nghĩa là phải trong vòng 100 năm qua hoặc không quá 100 năm trong tương lai, v.v.) bạn có thể làm điều đó sau to_date
chuyển đổi.