convert(varchar(10), pdate(), 111)
scheint ein Versuch zu sein, den SQL Server convert
zu verwenden Funktion. Das wird in Oracle nicht funktionieren.
Ich würde einfach so etwas tun wie
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;
Wenn Sie natürlich mehrere Überprüfungen durchführen möchten, damit Sie eine andere Ausnahme auslösen können, wenn die Länge falsch ist, oder einige Überprüfungen hinzufügen, um sicherzustellen, dass das Datum angemessen ist (d. h. innerhalb der letzten 100 Jahre oder nicht mehr als 100 Jahre liegen muss). die Zukunft usw.), könnten Sie dies nach dem to_date
tun Konvertierung.