convert(varchar(10), pdate(), 111)
lijkt een poging te zijn om de SQL Server convert
te gebruiken functie. Dat gaat niet werken in Oracle.
Ik zou gewoon zoiets doen als
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;
Natuurlijk, als u meerdere controles wilt doen, zodat u een andere uitzondering kunt maken als de lengte onjuist is, of een aantal controles wilt toevoegen om ervoor te zorgen dat de datum redelijk is (d.w.z. binnen de laatste 100 jaar of niet meer dan 100 jaar in de toekomst, enz.) zou je dat kunnen doen na de to_date
conversie.